単語やフレーズがイソグラムかどうかを判定します。
イソグラム(別名「non-pattern word」)とは、文字が繰り返し現れない単語やフレーズのことです。ただし、スペースとハイフンは何度現れてもかまいません。
イソグラムの例:
ただし、_isograms_という単語はイソグラムではありません。sが繰り返されているからです。
この演習では、テキストデータを扱います。歴史的な理由から、HaskellのString型は、文字のリストである[Char]と同じものです。テキストデータをより効率的に扱うには、Text型を使うこともできます。
この演習の任意の発展として、次のことができます。
Haskellの文字列型について読んでみましょう。
package.yamlの依存関係のリストに- textを追加しましょう。
Data.Textを次のようにインポートしましょう。
import qualified Data.Text as T
import Data.Text (Text)
これで、例えばisIsogram :: Text -> Boolと書いたり、Data.Textのコンビネーターを、例えばT.toLowerのように参照できるようになります。
Data.Textのドキュメントを調べてみましょう。
この部分は完全に任意です。