プログラミング Haskell 第7章 高階関数 練習問題その2
今日も 7.8 練習問題を解きます。だんだん読み進めるスピードが遅くなってきてしまいますが、ここはちゃんとやっておいたほうがよさそうなので我慢我慢。
5.
これは問題文を読んでいるだけではわからなくて ghci で入力してみようとしてやっとわかりました。リストには同じ型の要素しか入れられないので、型の違う関数を compose にリストで渡すのは不可能です。
6.
これは組の要素数は2固定でいいんですよね?
curry f a b = f (a, b) uncurry f (a, b) = f a b
7.
chop8 = unfold null (take 8) (drop 8) map f = unfold null (f . head) tail iterate f = unfold (\x -> False) id f
iterate は無限リストを作るので、unfold の最初の引数は「任意の引数を受け取って False を返す関数」です。組み込みでありそうですがみつけられずλで代用。
今日はここまで。練習問題に3日もかかりそうです。