19/03/31 21:41:58.30 pd4YzCEG.net
URLリンク(modegramming.blogspot.com)
Modegramming Style
2015年9月30日水曜日
関数型プログラミング技術マップ2015
『圏論の歩き方』を読んで少し理解が進んだので、関数型プログラミング技術マップを更新しました。
URLリンク(1.bp.blogspot.com)
以下の点を改良しています。
・Curry-Howard対応をCurry-Howard-Lambek対応に拡張
・直観主義述語論理を追加して直観主義命題論理を包含
・カルテジア閉圏とトポス(圏)を追加
・直観主義命題論理⇔カルテジアン閉圏、単純型付ラムダ計算⇔カルテジアン閉圏間の関係を追加
この図は関数型プログラミング(FP: Functional Programming)を取り巻く理論を整理することを目的としています。
誤解があるといけないので補足しておきますがFPを行うために必須の理論という意図ではありません。
業務アプリケーションをFPで開発するという目的には、圏論も論理学も抽象代数も必須知識ではなく、MonoidやMonadのプログラム上での使い方をパターンとして覚えておけば十分だと思います。代数的データ型もcase classの筋の良い使い方を覚えてしまえば大丈夫です。(もちろんFPとして筋の良いプログラミングをするためには、こういった理論を知っておいた方がよいのは言うまでもありません。)
一方、ビジネス・モデリングや要件定義といった上流のモデリングとFPとの連携を考えていく際には、こういった理論も取り込んでいく必要がありそうです。
つづく