+
是加法运算符。将运算符放在括号中,如(+)
,引用了加法函数本身,而不是使用+
在现场添加两个数字。基本上,这样的:
plus = (+)
相当于:
plus a b = a + b
无论哪种方式,它是定义plus
成为+
的同义词。
在Haskell中,->
用于分隔参数的类型,以及返回值。所以,
plus :: Int -> Int -> Int
是一个函数,它有两个Int
S和返回Int
。
plusPlus :: Int -> Int -> Int -> Int
是一个函数,它需要三个Int
S和返回Int
。
语法与参数和返回值相同的原因归结于currying。
要想获得真正的迂腐,
plus :: Int -> Int -> Int -- ~ Int -> (Int -> Int)
是一个函数,它接受一个Int
,并返回一个函数,它接受一个Int
并返回一个Int
。
plusPlus :: Int -> Int -> Int -> Int -- ~ Int -> (Int -> (Int -> Int))
是一个函数,它接受一个Int
,并返回一个函数,它接受一个Int
,并返回一个函数,它接受一个Int
并返回一个Int
。
实际上,把Haskell函数当作多个参数是很方便的。但从技术上讲,Haskell函数总是会有一个参数。参数类型位于->
的左侧,返回类型位于->
的右侧,但返回类型本身可能是另一个函数。
这正是我所要求的,最好的问候.. – smoothumut