関数型プログラミング言語ML
■ このスレッドは過去ログ倉庫に格納されています
0503デフォルトの名無しさん
NGNG? 静的型(宣言)のことか? そうさせてもらうぞ (W
ちと長いし、言ってることはほぼ既出だが...
MLは型付きなので、ユーザは型システムが要請する規則に従ってプログラムを書
かなければならない。だから、慣れないうちはなんだかよく分からない規則のせ
いで思ったようにプログラムが書けない、と窮屈に感じるかもしれん。それに対
してschemeには静的型の概念が無い分、言語の設計が簡潔なのでとっつきやすい。
しかし、MLでは型チェックを通ったプログラムは実行しても型エラー(例えば
Emacs lispでいうところの Wrong type argument: ...)を起こさない。MLの型シ
ステムはこれを満たすように設計されており、またこれからもそうであろう。
これをうれしいと見るか、それとも取るにたらない、と見るか。
そんなエラーはテストで取り除けるからいい、とか手で変数名に型をつけるから
いい、とかいうのであればMLは魅力的に見えないかもしれない。この辺の議論は
「型なし言語逝ってよし」スレにも議論があったと思う。
俺はプログラムが大きくなると(俺的には小さくてもだが)この手の小さなミス
が混入する可能性を排除しきれないと考える。だから、MLの型システムがこれ
を防いでくれるのは、一つのメリットだと思う。
■ このスレッドは過去ログ倉庫に格納されています