図書館から『関数プログラミング入門 Haskellで学ぶ原理と技法』を借りてきて読んでいます。Haskellを学んでおくことは思考の幅を拡げるのに、とても良いと感じています。
しかしながら難しい概念がない訳ではなく、「第1章 基本概念」の「1.4.2 カリー化」で書かれている「カリー化」は理解するのが難しそうです。そこでは、次のように書かれています。
説明のために以前取り上げた関数smallerを再考しよう。
smaller :: (Integer,Integer) → Integer
smaller (x,y) :: if x ≦ y then x else y
この関数smallerは整数の対という単一の引数をとり、整数を返す。もう1つ別の方法で、本質的には同じ関数を定義する。
smallerc :: Integer → (Integer → Integer)
smallerc x y :: if x ≦ y then x else y
こちらの関数smallercは2つの引数を1つずつ順にとる。
これがカリー化というものらしいのですが、このようにする意義がよくわかりません。Haskellには他にも難しい概念がありますが、ひとつずつ学んでいこうと思っています。
0 件のコメント:
コメントを投稿