Open Source WEB

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でプログラミングすることはこの上なく楽し いことなのです.


このサイトは、 IPA の「平成15年度オープンソフトウエア活用基盤整備事業」 の委託事業として開発されたKahuaで試験的に運用しております。

Copyright (c) 2004-2007 株式会社タイムインターメディア About Us