概要
関数プログラミング(関数型言語)の勉強会。SICP勉強会を発展的に解消。
- 取り上げる可能性のある言語
- Scheme (SICP でやった)
- CommonLisp
- Haskell
- OCaml
予定
8月10日17:00開始、12日17:00終了(48時間)で
をやる。(Haskellを使ってSchemeのインタプリタを48時間で作るらしい)
コア時間帯は10:00-12:00と14:00-17:00で、その時間帯はA707に集合してみんなで上記ドキュメントを読みつつ練習問題を解きつつ Scheme インタプリタを作成する。
- 初日(参加者: shimpei-m, hiro-kuz, kenich-i, mamoru-k, shuya-a)
- 製本したい人は松本研にて製本
- Haskell インタプリタインストールしていない人はインストール
- 概観(第1章)
- Hello, World! でも書いてみる
- コンパイルと実行(第2章 問題1-3)
- 2日目(参加者: hiro-kuz, kenich-i, mamoru-k, kei)
- 午前
- 1日目の復習
- パージング(第3章 問題1-3)
- 午後
- 評価 パート1(第4章 問題1-3)
- エラーチェック・例外(第5章)
- 評価 パート2(第6章 問題1-4)
- REPL (read-and-eval-loop) の実装(第7章)
- 午前
- 3日目
- 午前
- 2日目の復習
- 変数と値の割り当て(第8章)
- 午後
- Scheme 関数の定義(第9章)
- IOプリミティブの実装(第10章)
- 標準ライブラリに向けて(第11章)
- まとめ(第12章)
- 午前
アナウンス
夏休みは Write Yourself a Scheme in 48 Hours を2日で実際にやろうプロジェクトをやりますが、それまでに Haskell の参考文献等必要な人は集めていてください。いちばん適切だと思われるのは
A Gentle Introduction to Haskell Version 98 http://haskell.org/tutorial/ http://www.sampou.org/haskell/tutorial-j/ (和訳)
でしょう。英語版は PS/PDF ファイルがあります(全部で64ページ)が、日本語版は HTML しかないので印刷は面倒かもしれません。
他には書籍としては日本語で読めるものは
向井淳『入門 Haskell はじめて学ぶ関数型言語』毎日コミュニケーションズ(2006)
青木峰郎(著)・山下伸夫(監修)『ふつうのHaskellプログラミング ふつうのプログラマのための関数型言語入門』ソフトバンククリエイティブ(2006)
があります。いずれの本も、ある程度他の言語でプログラミングの経験がある人を対象に Haskell の解説をしていますが、リファレンス的に使いたい場合は後者の本のほうがいい気がします。Haskell ではこういうふうに書きますよ、というところから始まって、最後には一つのアプリケーションを作る、といった感じです。向井さんの本は小町が持っていて、青木さんの本は石橋くんが持っているので、見たい人は声をかけてください。
また、書籍として英語で読めるものは
Richard Bird: Introduction to Functional Programming Using Haskell, Peason, 1998.
Simon Thompson: Haskell: The Craft of Functional Programming, Addison-Wesley, 1999.
が定評あるようです。いずれも大学学部の教科書用に書かれたもので、関数型言語の説明に Haskell を用いて行っている、という感じです。(いずれの本も前の版は Miranda という言語を使って説明しています
次にやる本の案
- Paul Graham: On Lisp
- Scheme やったらマクロはやりたい(eric-n さん)
- http://www.amazon.co.jp/exec/obidos/ASIN/0130305529/
- 全文が web で公開されています http://www.paulgraham.com/onlisp.html
- 上記の和訳も公開されています(今年中に出版予定) http://user.ecc.u-tokyo.ac.jp/~t50473/#lisp
- Peter Seibel: Practical Common Lisp
- 実際のアプリケーションを作って理解するタイプの本(shuya-a さん)
- http://www.amazon.co.jp/exec/obidos/ASIN/1590592395/
- 全文が web で公開されています http://www.gigamonkeys.com/book/
- http://www.apress.com/free/ から登録(下から2番目)すれば PDF もダウンロードできる(shuya-a さん)
- Richard Bird: Introduction to Functional Programming Using Haskell
- Haskell に関して学びたいならこれ(kosmikus さん)
- http://www.amazon.co.jp/exec/obidos/ASIN/0134843460/
- 一つ前の版(Haskell を使っていない)は和書があります
- 英語版が手元にあるので、必要ならばお声をおかけください(masayu-a)
- 五十嵐さんの Objective Caml 入門: http://www.sato.kuis.kyoto-u.ac.jp/~igarashi/class/isle4-02w/mltext.pdf
- scheme が終わったのなら、次は Objective Caml に行くといいんじゃないでしょうか(daiti-m さん)
- Findler et al: How To Design Programs: An Introduction to Programming and Computing
- MIT ではいま SICP ではなくこっちを教科書に使っているっぽい? でも初心者向けであまりおもしろくないかも(eric-n さん、shuya-a さん、mamoru-k)
- http://www.amazon.co.jp/exec/obidos/ASIN/0262062186/
- 全文が web で公開されています http://www.hdtp.org/
これまでの軌跡
- 2005年7月-2006年7月