【发布时间】:2021-12-08 19:35:03
【问题描述】:
在ocaml中,这可以工作:
# let a b c=b@[c];;
val a : 'a list -> 'a -> 'a list = <fun>
# a [1] 2;;
- : int list = [1; 2]
当使用 sml(sml/nj) 时:
- fun a(b,c)=b@[c];;
val a = fn : 'a list * 'a -> 'a list
- a [1] 2;;
stdIn:4.1-4.8 Error: operator and operand do not agree [tycon mismatch]
operator domain: 'Z list * 'Z
operand: 'Y[INT] list
in expression:
a (1 :: nil)
我看到了《ml for the working programming》第 258 页:
fun enq(q,x)=q@[x]
那么为什么在 sml 中出现这个错误?谢谢!
【问题讨论】:
标签: sml