関数型言語Part3
■ このスレッドは過去ログ倉庫に格納されています
0618616
NGNGどっちにしても(GHCi書いたのは漏れじゃないが)
let id x = x
がキモで, id は x を受け取り x をそのまま返す関数.
id にはどんな型も適用できる型多相な関数なので, id 自身を
引数として与えることもできる,ってわけ.
>617 のような型宣言じたいに自分自身を含む定義は, OCaml では
明示的に禁止されている.
# type t = t -> t;;
The type abbreviation t is cyclic
が,コンストラクタ(型識別のためのタグのようなものという理解
でよい)を使えば回避できる.
# type t = T of (t -> t);;
type t = T of (t -> t);;
# let func = function T(f) -> f;;
val func : t -> t -> t = <fun>
うーんこれって期待した動作なのかな?よくわからん.
■ このスレッドは過去ログ倉庫に格納されています