Фиксированность операторов обратной кавычки?


person Matt Joiner    schedule 18.10.2011    source источник
comment
@ dabe4420 Кстати, ошибка влияет только на объявления исправления для функций, определенных в REPL. Сравните что-то вроде 'f' `elem` "abc" ++ "ijk", который работает нормально.   -  person fuz    schedule 18.10.2011


Ответы (1)


В §4.4.2 отчета Haskell говорится, что

Любой оператор без объявления фиксации считается infixl 9

«Любой оператор» включает обычные имена функций в обратных кавычках.

Ваш пример показывает, что `fmap` имеет более высокую устойчивость, чем ++, потому что ++ действует на результат fmap.

person dave4420    schedule 18.10.2011
comment
Стоит отметить, что для таких операторов можно указать постоянство. Например, 1 + 2 `const` 5 = 3, но 1 + 2 `div` 5 = 1. - person Rotsor; 18.10.2011
comment
@Rotsor: Ваш пример не является примером, потому что значение выражения 1 + 2 `const` 5 было бы равно 3, даже если бы фиксированность `const` была такой же, как у `div`. - person Tsuyoshi Ito; 18.10.2011
comment
О, как я мог? Тогда 2 `div` 1 ^ 2 = 2 и 2 `const` 1 ^ 2 = 4 являются примерами. - person Rotsor; 19.10.2011