📅  最后修改于: 2023-12-03 15:01:06.919000             🧑  作者: Mango
Haskell 是一种纯函数式编程语言,它的运算符和其他语言有所不同。本文将介绍 Haskell 中的基本运算符,包括数学运算符、逻辑运算符、比较运算符等。
Haskell 中的数学运算符与其他语言类似,包括加法、减法、乘法和除法。但是需要注意的是,Haskell 中的除法运算符 /
是被定义成实数除法的,即所有的操作数和结果都是实数。
-- 加法
3 + 5 -- 8
-- 减法
8 - 4 -- 4
-- 乘法
2 * 4 -- 8
-- 除法
8 / 2 -- 4.0
Haskell 中还有一个整数除法运算符 div
,它的运算结果是整数。整数除法运算符是向下取整的,即对于任何非零的整数 a 和正整数 b,a div
b 的结果总是向下取整到最接近 a / b 的整数。
-- 整数除法
7 `div` 3 -- 2
(-7) `div` 3 -- -3
7 `div` (-3) -- -3
Haskell 中的逻辑运算符包括与运算符、或运算符和非运算符。它们的运算结果是 Bool 类型的值,即 True 或 False。
-- 与运算
True && False -- False
-- 或运算
True || False -- True
-- 非运算
not True -- False
not False -- True
比较运算符被用于比较两个值的大小,并返回一个 Bool 类型的值。
-- 相等
3 == 5 -- False
-- 不相等
3 /= 5 -- True
-- 小于等于
3 <= 5 -- True
-- 大于等于
3 >= 5 -- False
需要注意的是,在 Haskell 中,=
被用于定义函数和模式匹配,而比较相等使用 ==
。
Haskell 中的运算符有优先级和结合性,它们决定了表达式如何计算。下表列出了 Haskell 中运算符的优先级和结合性。
| 运算符 | 描述 | 结合性 |
| -------------------- | ------------ | ----- |
| ^
| 指数运算 | 右结合 |
| *
, /
, div
, mod
| 乘法、除法、整数除法、求余 | 左结合 |
| +
, -
| 加法、减法 | 左结合 |
| :
, ++
| 合并列表 | 右结合 |
| ==
, /=
, <
, <=
, >
, >=
| 比较运算符 | 不可结合 |
| &&
| 与运算 | 右结合 |
| ||
| 或运算 | 右结合 |
Haskell 中的基本运算符包括数学运算符、逻辑运算符和比较运算符。需要注意的是除法运算符 /
是实数除法运算符,而整数除法运算符 div
是向下取整的。运算符的优先级和结合性决定了表达式的计算顺序。