理系学生日記

おまえはいつまで学生気分なのか

忍者TOOLS

SICP第1章読み終わり

読み始め

SICPの邦訳のタイトルは、「計算機プログラムの構造と解釈」で、正式名称をStructure and Interpretation of Computer Programsとかいいます。計算機科学の古典的な名著だといわれている本。この本を読み始めたのは、id:higeponこのエントリがきっかけです。2006年の10月のエントリなんで、よくもまぁぼくがはじめるのがこれだけ遅くなったもんだなーとか感動してむせび泣いている最中です。その後、

勉強してマスターしたときに今までの自分とまったく違う考え方になるかもしれないと期待している。

関数型言語の勉強にSICPを読もう - (1) SICPを読み始めた理由 - Higepon’s blog

てのを読んで、なんかそういうのってカッコいい!とか思って読み始めたのですよ。

抽象

1章のタイトルは"手続きによる抽象の構築"とかいうのですけども、関数型言語の抽象というのは、今まで使ってきた手続き型だとかとはまたちがったレベルの抽象だなーとか思いました。PerlとかC++とかJavaとかで書けないわけではないのだけども、普通書かないよなぁってレベルの抽象化をバンバンしてくる印象がある。それはiterative-improveだったり、filtered-accumulateだったりです。抽象度が高ければ良いってものでもありませんが、高い抽象度は部品化なり再利用なりで強力な武器にたぶんなって、その抽象ていう観点では、今まで見たどの言語よりもスゴそうだなぁとかいう印象を持ったりりしました。あと、その抽象化の過程はすごく楽しい。

forもwhileもあんましいらない

whileもforもないこの言語で(もしかしてあるかもしれないけどつかってない)、きっちり繰り返しが書けるってのは結構むねがスーっとするものがあります。再帰構造とかは、今ほとんどのプログラム言語でサポートしてるけども、この本見て初めて、語弊あるけど効率の良い再帰(反復的プロセス)と悪い再帰再帰的プロセス)の違いとか知りました。

まだ新しい考え方はできてない

ただ、わりかし今までの考えに固執していて、それほど新しい考え方ができるようになった印象はないです。まぁまだ1章だし、これからかなーとか思っています。とりあえず1日1問という感じで進めていますが、このペースだとあと1年くらいかかる。今図書館で借りてんだけど、買ったほうがいいのかなー。高いよなー。


いちおアレだ、全内容は公開されてるですよ。Welcome to the SICP Web Site

計算機プログラムの構造と解釈

計算機プログラムの構造と解釈