関数型プログラミング言語ML
■ このスレッドは過去ログ倉庫に格納されています
0372355
NGNG# let id : 'a -> 'a = fun x -> x ;;
val id : 'a -> 'a = <fun>
# (id 123, id "abc") ;;
- : int * string = 123, "abc"
はエラーにならないのに、
# (fun (id : 'a -> 'a ) -> (id 123, id "abc"))
(fun x -> x) ;;
はエラーになる理由を述べよ、って言えば良かったのかも。
意味的には
let x = 式1 in 式2
と
(fun x -> 式2) 式1
は同じだけど、MLの型システムでは扱いが違う。で、「どう違うのか?」と。
■ このスレッドは過去ログ倉庫に格納されています