ボブは、無気力な10代の少年です。 自分はとてもクールだと思っています。 そして、物事に興奮することなんて絶対にありません。 そんなのはクールじゃありませんから。
誰かが話しかけても、返ってくる言葉はごく限られています。
Bobが誰かに何か話しかけられたり、質問されたりしたときに、Bobが何と答えるかを判断するのが課題です。
Bobの答えは、必ず次の5つのうちのどれかになります。
与えられた入力に対してボブの返答を返すresponseFor関数を実装してください。型がわからない場合は、用意されているシグネチャを使ってもかまいませんが、それを創造性の制約にしないでください。
responseFor :: String -> String
この演習を解くために、次の資料を読むとよいでしょう。
この演習では、テキストデータを扱います。歴史的な理由から、HaskellのString型は文字のリストである[Char]と同じ意味です。テキストデータをより効率的に扱うには、Text型を使うこともできます。
この演習の発展として、任意で次のこともできます。
Haskellの文字列型について読んでみましょう。
package.yamlの依存関係のリストに- textを追加しましょう。
次のようにData.Textをインポートしましょう。
import qualified Data.Text as T
import Data.Text (Text)
これで、例えばresponseFor :: Text -> Textと書いたり、Data.TextのコンビネータをT.isSuffixOfのように参照したりできるようになります。
Data.Textのドキュメントを調べてみましょう、
その後、Bob.hsの中にあるすべてのStringをTextに置き換えることができます。
responseFor :: Text -> Text
この部分は完全に任意です。