我们要做的第一件事就是运行ghc的交互模式并调用一些函数来获得对haskell的基本感觉,打开终端输入ghci,我们会得到如下的反应:
做一些简单的算术:
我们也可以在一行上使用多个运算符,并遵守所有常见的优先级规则,我们可以使用括号来明确优先级或更改优先级。
需要注意的是,如果我们想要一个负数,最好用括号将其扩起来,例如需要执行 5 * (-3)。
布尔代数也非常简单,&&表示布尔值和,||表示布尔值或,not表示否定True或者False。
equality是这样完成的,其中/=是不等于的意思:
那么5 + "llama"或者"5 == True"怎么样呢,如果我们尝试第一个片段,会收到错误消息:
报错信息告诉我们,llama不是一个数字,+仅适用于被视为数字的事物,==适用于任何可以比较的事物,必须是同一类型的东西。
我们一直在使用函数,*是一个接受两个数字并将它们相乘的函数,我们通过将其夹在中间来称呼它,这就是我们说的中缀函数。大多数不与数字一起使用的是前缀函数。
函数通常是前缀的,从现在开始我们不会明确声明函数是前缀形式,我们只是假设。在大多数命令式语言中,通过编写函数名称,然后将参数写在括号中(通常用逗号隔开)来调用函数。在Haskell中。通过编写函数名称、空格和参数来调用函数,参数之间用空格分隔。首先,我们将尝试调用Haskell中最无聊的函数之一。
succ函数接受具有已定义后继者的任何内容并返回该后继者。我们只是用空格分隔函数名称和参数。调用具有多个参数的函数也很简单。函数max和min接受两个可以排序的东西(比如数字):