Chat (Lingr.com)
Informaiton
Daily
Column
- MySQL日本語の旅(5/1)
- アクセス向上秘伝(5/9)
- 一風変ったHaskellλ門(6/13)
- SICP Answer Book (5/31) 問題3.26追加
Zope Solution
Extra
アーカイブ
OSS案内所
Site Info
関連リンク
1. 手続による抽象の構築
SICP の第一章の最初のパラグラフには,
We are about to study the idea of a computational process. Computational processes are abstract beings that inhabit computers. As they evolve, processes manipulate other abstract things called data. The evolution of a process is directed by a pattern of rules called a program. People create programs to direct processes. In effect, we conjure the spirits of the computer with our spells.
と書かれています.これによれば,プログラム(算譜)は計算プロセスに指示を するための指示書ということです.指示書というからには,なんらかの手順が 示され,その順番に何かを「行う」ためのものです.関数プログラミングでは その指示書は関数(Function)の定義の集りです.SICPでは「手続」と呼んでい ますが,ここでは常に関数ということにします.
SICPでは,プログラミングをSchemeを用いて行います.SchemeはLispの方言の 最も洗練されたものです.Lispといえば再帰関数と数学的手法をもちいてプロ グラミングを行うために考案され実装され言語ですので,関数型言語の代表の ように言われることはなんら文句のないところです.(その柔軟性と記述力で は単に関数型という狭いパラダイムのなかにいれるのはもったいでしょう.)
Haskellは遠い先祖にはLispをはいする純粋な関数型言語です.純粋というこ とは往々にして非実用という謗りを受けることになるのですが,Haskellは実 用言語としても立派に通用しています.HaskellはSchemeに勝るとも劣らない 記述力があります.
それになにより,Haskellでプログラミングすることはこの上なく楽し いことなのです.