小编t0m*_*ma5的帖子

haskell中的参数命名规则

出于什么原因,不允许具有相同名称的参数在同一个等式中出现多次?例子:

f a a = show a

d && d = d
_ && _ = False
Run Code Online (Sandbox Code Playgroud)

从技术上讲,形式参数(报告称这些变量.)也是模式 - 只是它们永远不会匹配一个值.作为成功匹配的"副作用",形式参数与其匹配的值绑定.由于这个原因,任何一个方程中的模式都不允许出现多次相同的形式参数(称为线性§3.17,§3.3,§4.4.3).

variables haskell arguments naming-conventions

5
推荐指数
1
解决办法
250
查看次数

类型类,重载和实例声明

有这个:

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 types ghci

4
推荐指数
1
解决办法
82
查看次数

函数名称与haskell中的变量

来自haskell文档:

标识符在词法上被区分为两个名称空间(第1.4节):以小写字母(变量标识符)开头的标识符和以大写字母开头的标识符(构造函数标识符).

所以包含常量值的变量,即a=4函数名称add add a b = a + b都是变量标识符,是吗?我们可以说函数名是可变的吗?

来自另一个学术来源:

f (patter1)...(pattern2) = expression
Run Code Online (Sandbox Code Playgroud)

..模式可以是构造函数或变量,而不是已定义的函数

这是我感到困惑的地方.正如我可以做的那样f g xg是一个函数,我再次看到函数名是一个变量.真正?他们对"未定义的定义函数"的含义是什么呢?

syntax haskell

0
推荐指数
1
解决办法
217
查看次数