在标准ML中,一个函数只能有一个参数,因此请使用:(fn (x,y) => x + y) (2,3) 类型为 fn: int * int -> int 在这个例子中,(x,y)和(2,3)是一个列表结构。
上面发布的答案是正确的。SML函数只接受一个参数。因此,SML函数只能具有以下两种输入类型之一:1)t =(t1 * t2 * ... * tN),其中N为某个整数2)t = a,其中a为某个值。因此,严格来说,SML仅接受乘积类型或一元类型作为函数参数。更普遍地说,可以将其视为一元类型或某些产品类型的投影。为了在匿名函数内部进行柯里化,请随意将它们嵌套在彼此中:fn x1 => fn x2 => ... fn xN => ...我认为了解以下内容也很重要:fun a = fn x1 => fn x2 => ... fn xN => ...是语法糖fun a x1 x2 .. xN的完整展开形式。