関数 f の型 ’a -> ’b は,任意の値eに対して,関数 適用 f eの結果が任意の型を持つことを意味する. 値は何らかの型を持っているはずであるから,値を返す関数はこのような 型を取り得ない. この f の型は,f が値を返さないという特殊な性質を反映して いる. この点を参考に,型 ’a -> ’b を持つ関数を,例外を使わず に定義せよ.
解答例 典型的な例は、以下の無限ループ関数である。
fun f x = f x;
それ意外にも、組込み型を使えば、例えば、
fun f x = hd nil
など、種々可能である。