内容简介:infix,infixl,infixr是Haskell中给运算符定义优先级操作用的。 例如:infixr是右结合,infixl是左结合,infix无左右优先性。优先级一共有 十个,0-9,数字越大越高,如果定义时省略了数字,则默认为9。
https://www.haskell.org/onlinereport/decls.html#fixity
infix,infixl,infixr是Haskell中给运算符定义优先级操作用的。 例如:
infixr 9 `op
infixr是右结合,infixl是左结合,infix无左右优先性。优先级一共有 十个,0-9,数字越大越高,如果定义时省略了数字,则默认为9。
预定义的优先级表格如下:
+----------+-----------+-----------------------------------+----------+ | | 左结合 | 无结合 | 右结合 | +----------+-----------+-----------------------------------+----------+ | 9 | !! | | . | +----------+-----------+-----------------------------------+----------+ | 8 | | | ^, ^^, **| +----------+-----------+-----------------------------------+----------+ | 7 |*,/,`div` | | | +----------+-----------+-----------------------------------+----------+ | 6 |+, - | | | +----------+-----------+-----------------------------------+----------+ | 5 | | |:, ++ | +----------+-----------+-----------------------------------+----------+ | 4 | |==,/=,<,<=,>,>=,`elem`,`notElem` | | +----------+-----------+-----------------------------------+----------+ | 3 | | | && | +----------+-----------+-----------------------------------+----------+ | 2 | | | || | +----------+-----------+-----------------------------------+----------+ | 1 | >>, >>= | | | +----------+-----------+-----------------------------------+----------+ | 0 | | |$,$!,`seq`| +----------+-----------+-----------------------------------+----------+
根据上面的表,如果是 1 + 2 + 3 + 4
就等于 ((1 + 2) + 3) + 4
,因为加法
符合结合律,所以我们不容易看出来,我们来看减法。
infixr `op` op x y = x - y main = do putStrLn $ show (5 - 3 - 2) putStrLn $ show (5 - 3 `op` 2)
$ runhaskell tryInfix.hs 0 4
上述便是效果。
Haskell中自定义的操作符非常多,往往看源代码看的眼花缭乱,此外还需要非常注意优先级。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
马尔可夫链:模型、算法与应用
Wai-Ki Ching、Ximin Huang / 陈曦 / 清华大学出版社 / 2015-6 / 39
《马尔可夫链:模型、算法与应用 应用数学译丛》讲述了马尔可夫链模型在排队系统、网页重要性排名、制造系统、再制造系统、库存系统以及金融风险管理等方面的最新应用进展.全书共安排8章内容,第1章介绍马尔可夫链、隐马尔可夫模型和马尔可夫决策过程的基本理论和方法,其余7章分别介绍马尔可夫链模型在不同领域中的应用. 《马尔可夫链:模型、算法与应用 应用数学译丛》可作为自动化、工业工程、统计学、应用数学以及管理......一起来看看 《马尔可夫链:模型、算法与应用》 这本书的介绍吧!