2022-12-07

カリー化

図書館から『関数プログラミング入門 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 件のコメント:

コメントを投稿