ML!!!!!!
■ このスレッドは過去ログ倉庫に格納されています
0190デフォルトの名無しさん
NGNGttp://a414s1.it.nanzan-u.ac.jp/smlbook/smlwww/node12.html
を見つつお勉強してるんですが、
ここに載ってる例の、
exception Get_nth;
fun get_nth _ nil = raise Get_nth
|get_nth 1 (front :: _) = front
|get_nth n (_ :: rest) = get_nth (n-1) rest;
val get_third = get_nth 3;
というのが、smlで
stdIn:7.1-7.22 Warning: type vars not generalized because of
value restriction are instantiated to dummy types (X1,X2,...)
val get_3 = fn : ?.X1 list -> ?.X1
と言われて動きません。
moscow ml だと
! Warning: Value polymorphism:
! Free type variable(s) at top level in value identifier get3
と言われつつも動くのですが。
なんでですか?
Standard ML of New Jersey v110.9.1 [FLINT v1.41], October 19, 1998
Moscow ML version 2.00 (June 2000)
NetBSD 1.5ZA
にて。
■ このスレッドは過去ログ倉庫に格納されています