数学を勉強するとき、具体例の果たす役割は非常に大きい。たとえばコンパクト性という概念を理解するときに、閉区間 [a, b] がその例になっていることを納得するというステップは欠かせない。あるいは「R^nの有界閉集合はコンパクトである」という事実を理解するために、反例として無限次元空間の単位閉球がコンパクトでないことを理解することも重要である。
一方で情報系では具体例に対する意識が数学ほど発達していないように思う。かわりに例え話を使って概念を説明することがよくある:「C言語の変数は箱のようなものだが、SMLの変数は箱というよりラベルである」など。
数学より情報科学の方が具体的だというのが一般的な感覚だと思うが、それも一理ある。情報科学の方が産業的な応用が多いため応用事例は数学より多く流通している。応用を知ることはモチベーションになるのでもちろん意味はあるのだが、理解のための具体例としてはサイズが大きすぎてあまり効率的ではない。
先日Lispyという100行程度のLISP実装を読んだのだが、これは理解のための具体例として非常にいい。短いので頭の中に入るサイズである。call-by-value, lexical scope, closureなどの概念はこの実装をもとによく理解できると思う。