次の2つの機能があります。
import qualified Data.Text as T
noneOnEmptyA :: T.Text -> T.Text
noneOnEmptyA txt | T.null txt = "None."
| otherwise = txt
noneOnEmptyB :: [T.Text] -> [T.Text]
noneOnEmptyB txts | null txts = ["None."]
| otherwise = txts
noneOnEmptyA
1) 機能を達成し、2) 機能を達成するように持ち上げることができる単一の関数を作成することは可能noneOnEmptyB
ですか? 問題の核心は、空のリストをチェックしnoneOnEmptyA
ながら空のテキストをチェックすることです。noneOnEmptyB
ただし、noneOnEmptyA
リストを操作するために持ち上げられた ( fmap noneOnEmptyA
type を返す場合のよう[T.Text]
に) リスト自体が空であるかどうかをチェックするのではなく、リスト内の空のテキストをチェックします。