2024-06-05

カリー化の定義

数年前からHaskellを学んでみようと何度も試みていますが、なかなかハードルが高いと感じています。今までに慣れ親しんでいたC言語とかPythonなどとは大きく異なるので、これまでの経験や勘が働かないことも、困難さの原因のような気がします。いろいろと理解が難しい概念があるのですが、そのひとつが「カリー化」です。

 

関数プログラミング入門 ―Haskellで学ぶ原理と技法―』の「1.4.2 カリー化」で説明されていますが、とても簡潔なので、これだけでは良く分かりません。Webを検索すると、カリー化に苦しんでいる人が多く様々な記事が見つかります。いろいろと読んでみると、「カリー化談義」に次のように書かれており、なるほどと納得しました。

「複数の引数を取る関数」を「一引数を取る関数のチェインに直す」こと。これはkmizuさんの定義。世間でもよく使われる。


カリー化というのは、Haskellに限った話ではなく、Pythonなどにも適用できるようです。しかしカリー化を前面に押し出してくるのは、やはりHaskellならではとは思います。


ともかくHaskellは、関数型プログラミング言語なので、慣れるのに苦労しそうです。前述の書籍を読んでいこうと思っているのですが、図書館で借りているので返却しなければならず、じっくり読むことが出来ません。手元に置こうかと思っていたのですが、放送大学のディスカバリーサービスで検索してみたら電子書籍として参照できることが分かりました。これがあるなら、いつでも読めると思います。

0 件のコメント:

コメントを投稿