Haskell代码中的参数数量和类型不同,为什么?
有人能解释一下下面的代码吗?请一步一步地解释。我知道它正在定义一个函数及其输入,但是Haskell代码中的参数数量和类型不同,为什么?,haskell,types,syntax,arguments,type-signature,Haskell,Types,Syntax,Arguments,Type Signature,有人能解释一下下面的代码吗?请一步一步地解释。我知道它正在定义一个函数及其输入,但是(+)做什么,为什么plus中有三个Ints和plusplus类型中有四个Ints,而plusplus的代码中似乎只有三个参数 plus :: Int -> Int -> Int plus = (+) plusPlus :: Int -> Int -> Int -> Int plusPlus a b c = a + b + c +是加法运算符。将运算符放在括号中,如(+
(+)
做什么,为什么plus
中有三个Int
s和plusplus
类型中有四个Int
s,而plusplus
的代码中似乎只有三个参数
plus :: Int -> Int -> Int
plus = (+)
plusPlus :: Int -> Int -> Int -> Int
plusPlus a b c = a + b + c
+
是加法运算符。将运算符放在括号中,如(+)
,是指加法函数本身,而不是使用+
当场添加两个数字。基本上,这是:
plus = (+)
相当于:
plus a b = a + b
无论哪种方式,它都将plus
定义为+
的同义词
在Haskell中,->
用于分隔参数的类型以及返回值。所以
是一个函数,它接受两个Int
s并返回一个Int
plusPlus :: Int -> Int -> Int -> Int
plusPlus :: Int -> Int -> Int -> Int -- ~ Int -> (Int -> (Int -> Int))
是一个函数,它接受三个Int
s并返回一个Int
plusPlus :: Int -> Int -> Int -> Int
plusPlus :: Int -> Int -> Int -> Int -- ~ Int -> (Int -> (Int -> Int))
参数和返回值的语法相同的原因在于
要真的学究气
plus :: Int -> Int -> Int -- ~ Int -> (Int -> Int)
是一个函数,它接受一个Int
,并返回一个函数,该函数接受一个Int
,并返回一个Int
plusPlus :: Int -> Int -> Int -> Int
plusPlus :: Int -> Int -> Int -> Int -- ~ Int -> (Int -> (Int -> Int))
是一个函数,它接受一个Int
,并返回一个接受一个Int
的函数,返回一个接受一个Int
并返回一个Int
的函数
plusPlus :: Int -> Int -> Int -> Int
plusPlus :: Int -> Int -> Int -> Int -- ~ Int -> (Int -> (Int -> Int))
在实践中,可以方便地将Haskell函数称为接受多个参数。但从技术上讲,Haskell函数总是使用一个参数。参数类型位于
->
的左侧,返回类型位于->
的右侧,但返回类型本身可能是另一个函数。+
是加法运算符。将运算符放在括号中,如(+)
,是指加法函数本身,而不是使用+
当场添加两个数字。基本上,这是:
plus = (+)
相当于:
plus a b = a + b
无论哪种方式,它都将plus
定义为+
的同义词
在Haskell中,->
用于分隔参数的类型以及返回值。所以
是一个函数,它接受两个Int
s并返回一个Int
plusPlus :: Int -> Int -> Int -> Int
plusPlus :: Int -> Int -> Int -> Int -- ~ Int -> (Int -> (Int -> Int))
是一个函数,它接受三个Int
s并返回一个Int
plusPlus :: Int -> Int -> Int -> Int
plusPlus :: Int -> Int -> Int -> Int -- ~ Int -> (Int -> (Int -> Int))
参数和返回值的语法相同的原因在于
要真的学究气
plus :: Int -> Int -> Int -- ~ Int -> (Int -> Int)
是一个函数,它接受一个Int
,并返回一个函数,该函数接受一个Int
,并返回一个Int
plusPlus :: Int -> Int -> Int -> Int
plusPlus :: Int -> Int -> Int -> Int -- ~ Int -> (Int -> (Int -> Int))
是一个函数,它接受一个Int
,并返回一个接受一个Int
的函数,返回一个接受一个Int
并返回一个Int
的函数
plusPlus :: Int -> Int -> Int -> Int
plusPlus :: Int -> Int -> Int -> Int -- ~ Int -> (Int -> (Int -> Int))
在实践中,可以方便地将Haskell函数称为接受多个参数。但从技术上讲,Haskell函数总是使用一个参数。参数类型位于->
的左侧,返回类型位于->
的右侧,但返回类型本身可能是另一个函数