在此代码中:
let f(a,b,c) = a * b + c - (d())
let g(a,b,c) = a * b + c -(d())
f
为(int*int*int) -> int
,g
为(int*int*(int*int)) -> int
。
删除d()
中g
周围的括号会导致“连续参数应以空格或元组分隔”错误。
发生了什么事?
答案 0 :(得分:2)
@bytebuster在他的评论中是非常正确的,但是把它放到外行的术语中; - ]一个被解析为二元减法运算符而另一个被解析为一元否定运算符 - 你只是在这里与运算符优先级对抗。