52700.fb2
-4
*Fixity> 1 ‘neg‘ 2 ‘neg‘ 3
2
Посмотрим как это вычислялось:
1
+
2
*
3
==
1
+
(2
*
3)
1
+++
2
*** 3
==
(1
+++
2)
***
3
1
-
2
-
3
==
(1
-
2)
-
3
1 ‘neg‘ 2 ‘neg 3‘ ==
1 ‘neg‘ (2
‘neg‘ 3)
Также в Haskell есть директива infix это тоже самое, что и infixl.
Приоритет функции композиции
Посмотрим на приоритет функции композиции:
Prelude> :i (. )
(. ) :: (b -> c) -> (a -> b) -> a -> c
-- Defined in GHC.Base
infixr 9 .
Она имеет высший приоритет. Она очень часто используется при определении функции в бесточечном
стиле. Такая функция похожа на конвейер функций:
fun a = fun1 a . fun2 (x1 + x2) . fun3 . (+x1)