1
那些返回类型的区别是什么?咖喱函数类型中圆括号的区别
val fn1 : int −> (int −> (int −> int))
val fn2: (int −> int) −> (int −> int)
这将创建类型的函数
int -> int -> int meaning int -> (int -> int)
是这样吗?没有支架,它们具有相同的含义!
那些返回类型的区别是什么?咖喱函数类型中圆括号的区别
val fn1 : int −> (int −> (int −> int))
val fn2: (int −> int) −> (int −> int)
这将创建类型的函数
int -> int -> int meaning int -> (int -> int)
是这样吗?没有支架,它们具有相同的含义!
如您所说,fn1
的功能类型相当于int -> int -> int -> int
。
当你有多个curried参数,像fn1 a b c
,然后fn1 a
是int -> int -> int
类型的函数,而fn1 a b
是int -> int
类型的函数。因此fn1
也可以被看作是一个返回函数的函数,该函数返回返回int
的函数。添加像int -> (int -> (int -> int))
这样的括号就突出了这种解释。
功能fn2
不同的是:它需要int -> int
类型的函数作为参数并返回int -> int
类型的另一功能。
要加,'fn2'的类型也可以写成'(int - > int) - > int - > int',但是第一个圆括号不能被删除 – newacct