Lispを使って、関数型言語の機能を過不足なく勉強できそうな本が発売されていました。
はじめてのLisp関数型プログラミング――ラムダ計算からリファクタリングまで一気にわかる (Software Design plus)
- 作者: 五味弘,272
- 出版社/メーカー: 技術評論社
- 発売日: 2016/03/18
- メディア: 大型本
- この商品を含むブログ (1件) を見る
この本に「Lispを関数型プログラミングの学習用言語として勧める理由」として以下のことが書かれています。Lispのプログラミングとしての特徴・利点をよく表しています。
RはLisp(Scheme)の影響を強く受けた言語であり、上のようなLispの特徴はRにも共通している部分が多いと思います。 また、Lispを勉強することによって、副作用のないきれいなコードを書けるようになったり、Rで学んだプログラミングテクニックを他の言語で活かせるようになるはずです。
そのため、今まで私は同期のRプログラマーにLAND OF LISPという本を薦めて(押し付けて)いたのですが、軽い本ではなく、彼自身、時系列予測の勉強に忙しくて手が回らないようです。彼はR言語でならapplyやdo.callなどの機能を使いこなせるのですが、同じようなことをブロックで実現しているRubyでのプログラミングには苦戦してしまっていました。
それは、R言語での知識を一般的な関数型の考え方と結び付けられていないから、すなわちLispに触れていないからだと思います。
私は以前はRに苦手意識を持っており、Rの強力な集計機能を使いこなせず、データ分析の作業もPythonで行っていました。
それが、Lispに触れることで、Rに特有のように見えていた機能(関数も変数に代入する形で宣言するところだとかapply系の関数だとか)はLisp(Scheme)に由来しており、それが普遍的なプログラミングのテクニックだということに気づき、使いこなせるようになりました。