議事録(第一回目)

今日の朝八時からの二時間、社内会議室にて第一回目のSIPC勉強会がありました。僕の同期二人と、圧倒的な技術力を持つ先輩プログラマーが勉強会の参加者です。今日は、先輩が進行役を務めました。1ページずつ内容を読解しつつ、随所で掲載されている練習問題の解説をしていくという進め方で、今日は第一章の二節の途中までいきました。
僕は第一章を二回ほど読んだ上で参加しましたが、練習問題はスルーしていて、コードを実際に書くという作業もあまりやっていない状態でした。でも、練習問題にこそ本当の面白さが隠れているということを今日の勉強会で実感し、もったいないことをしてしまったと若干後悔しています。次回からは、しっかりと自分なりに解答した上で参加できたらいいなと思っています。
以下に、今日の勉強会でメモしたことを書き残しておきますが、実際はもっと細かいことについての説明が多々あり、そこまでメモを取りきれませんでした。

  • 本書(SICP)の目指すところ
  • 師匠の教え
    • 本書の著者が大魔導士で、読者が見習い魔法使いだという構図
    • まずは、大魔導士が教える呪文を覚えることが大事
    • 呪文が実際にはどんな仕組みになっているのかということは後になって解明される
    • とりあえずの仮説を紹介している部分が多々ある
    • 正規順序の評価(nomal-order evaluation)と作用的順序の評価(applicative-order evaluation)の部分は、その好例
    • 例えば、「式評価における置換モデル(substitution model)」全体について
    • 「置換モデル」という仮説は、代入が導入されるともはや維持できないが、読者の理解を促すためにとりあえずの仮説を紹介している
  • Lispの特徴
    • 括弧はコンビネーションを意味する
    • 第一引数はオペレータで、第二引数以降がオペランド
    • この単純な法則が、あらゆるところで徹底されている
    • この記法のおかげで、単純物であろうと合成物であろうと、同じように表現することができる

具体的なコードを書きたいところですが、そこまで手が回りそうにありません。今日の勉強会で感じたことは、同じ本を読んでいたとしても、読み手によって解釈のレベルが全然違うということです。自分がスルーしていた部分について詳細な説明を受けるということが多々あり、ただただ呆然としてしまった瞬間は数えきれないほどでした。こういう刺激を大切にしながら、今後の勉強会に望んできたいと思っています。