TAMALOG

プログラミングがあれば遠いところへ行けます。プログラムと人の共生を記録します。

『簡約! λカ娘』で、ラムダ式とチャーチ数がわかった

ラムダ式とチャーチ数、SKIコンビネーターが理解できる同人誌『簡約! λカ娘』を紹介します。先輩から勧められて読みました。先輩は良著と評していましたが、その通りとてもわかりやすかったです。

ラムダ式やチャーチ数、SKIコンビネーターなどの言葉は知ってるけど具体的にはわからないという人におすすめです。

書影がイカしてる

まず、タイトルがイカしてる。イカ娘のイがλ(ラムダ)に置換されていたり、侵略がβ簡約の簡約に置換されていたりしてセンスを感じる。

f:id:tamanobi:20170102234541j:plain

イカ娘はSchemeがお好き

同人誌中で出てくるλカ娘はプログラマーという設定で、LISP処理系のひとつSchemeが大好きなようです。本文中では、Haskellも登場します。

ラムダ式から、チャーチ数、チャーチ数とラムダ式を使った足し算の表現、SKIコンビネーター計算の紹介などが丁寧に解説されていました。λカ娘娘が「ゲソゲソ」言いながら解説してくれるので、飽きずにさらっと1時間くらいで読み終わりました。

読者が熱くなれる第3章「関数型イカガール」

関数型の配列操作について考える章が最もHOTでした。何度も読み返したくなる章です。

immutableなデータ構造によって配列操作を愚直に実装すると、mutableなデータ構造に対する配列操作と比べてパフォーマンスが極端に落ちるという問題を攻略するための工夫がわかります。この章を読んで、immutableなデータ構造ならimmutableなデータ構造用の最適化の方法がしっかりと確立していることを知りました。

紹介されているトピック

配列操作をどう扱うかというテーマに沿ったきれいな論旨展開が印象的でした。

  • Linear Type
  • Stream Fusion
  • Recycling
  • Deforesting

公式サイト

C80で頒布された同人誌らしい。今から5年くらい前ってことですね。

簡約! λカ娘 - 参照透明な海を守る会

購入先

メロンブックスで委託しているようです。まだ買えます。

www.melonbooks.com

まとめ

  • 簡約! λカ娘』は、ラムダ式やチャーチ数、SKIコンビネーターなどの言葉は知ってるけど具体的にはわからないという人におすすめ
  • 第3章で、永続データ構造の最適化の工夫について知ることができる