関数型プログラミングパラダイムについて,その初級者・中級者向けの講義を行う.講義の都合上,Objective Caml, Scheme, Haskell, Clojure などいくつかのプログラミング言語を取り上げて,できるだけ具体例を提示しながら解説するつもりです.
関数型プログラミングパラダイムにおける諸概念とプログラム技術について講義を行い,このパラダイムの面白さを伝えたい。他のパラダイムに取り入れられつつある,自動的メモリ管理,関数閉包,モジュールシステムだけでなく,継続や高度なマクロ機能などの独特の機能、関数型(=非破壊)データ構造、構文解析演算子、アクター計算,マクロシステムなどについても触れたい。
1. ガイダンス
2. Objective Caml
3. 関数展開
4. 高階プログラミング
5. 代入と環境
6. 関数閉包
7. モジュールとファンクター
8. Scheme
9. 継続と文脈
10. 継続プログラミング
11. CPS
12-15. 上級のトピック(並行プログラミング,マクロなど)
公開Evernoteノートブック(https://www.evernote.com/shard/s2/sh/bdef34f6-05bf-4c69-8150-f2b866c19d99/ad3de17cf154ebc608044817a9f57e34)に各種書籍,マニュアル,仕様書などを随時紹介
https://www.evernote.com/shard/s2/sh/bdef34f6-05bf-4c69-8150-f2b866c19d99/ad3de17cf154ebc608044817a9f57e34
プログラミングの教育を受けた経験があり,関数型言語を意欲的に学ぶ意思があること.
講義の中の小テスト、いくつかの実習課題によって判断する。
- Main Web site(http://kwakita.wordpress.com/classes-2013/fp/)
- Class notes(https://www.evernote.com/pub/kwakita/fp-pub)