出于什么原因,不允许具有相同名称的参数在同一个等式中出现多次?例子:
f a a = show a
d && d = d
_ && _ = False
Run Code Online (Sandbox Code Playgroud)
从技术上讲,形式参数(报告称这些变量.)也是模式 - 只是它们永远不会匹配一个值.作为成功匹配的"副作用",形式参数与其匹配的值绑定.由于这个原因,任何一个方程中的模式都不允许出现多次相同的形式参数(称为线性§3.17,§3.3,§4.4.3).
有这个:
data Rectangle = Rectangle Height Width
data Circle = Circle Radius
class Shape a where
area :: a -> Float
perimeter :: a -> Float
instance Shape Rectangle where
area (Rectangle h w) = h * w
perimeter (Rectangle h w) = 2*h+w*2
instance Shape Circle where
area (Circle r) = pi * r**2
perimeter (Circle r) = 2*pi*r
volumenPrism base height = (area base) * height
surfacePrism shape h = (area shape) * 2 + perimeter shape * …Run Code Online (Sandbox Code Playgroud) 来自haskell文档:
标识符在词法上被区分为两个名称空间(第1.4节):以小写字母(变量标识符)开头的标识符和以大写字母开头的标识符(构造函数标识符).
所以包含常量值的变量,即a=4函数名称add add a b = a + b都是变量标识符,是吗?我们可以说函数名是可变的吗?
来自另一个学术来源:
Run Code Online (Sandbox Code Playgroud)f (patter1)...(pattern2) = expression..模式可以是构造函数或变量,而不是已定义的函数
这是我感到困惑的地方.正如我可以做的那样f g xg是一个函数,我再次看到函数名是一个变量.真正?他们对"未定义的定义函数"的含义是什么呢?