今回からスペースリークに関することに踏み入ります。 まずは正格評価と遅延評価の動作についてです。 型と動的な挙動 まず型についてはここでは触れません。Haskellの型は非常に複雑なものです。型についてメンタルモデルを構築する際もλ計算のシンプルさを念頭におくと非常に理解しやすいとは思いますが、ここでは扱いません。 なので型クラス(type class)や型パラメータ(parametric polymorphism)や型関数(type function)といったものは出てきません。 昔僕も静的な箇所と動的な箇所の違いが見えなかった感覚を少しだけ覚えていますが(スクリプト言語しか書いていないと陥りそうです)、静的な箇所とはプログラムを動作させなくても決定できるところを指すとしましょう。慣れればちゃんと項レベルと型レベルの違いはきちんとわかるものです(ここでは型レベルと項レベルの違いについても