Без круглых скобок:
Prelude> [1,2] >>= \n -> ['a', 'b'] >>= \ch -> return (n, ch)
[(1,'a'),(1,'b'),(2,'a'),(2,'b')]
Скобки, принимающие левую ассоциативность:
Prelude> ([1,2] >>= \n -> ['a', 'b']) >>= \ch -> return (n, ch)
<interactive>:22:49: Not in scope: `n'
Скобки, предполагающие правую ассоциативность:
Prelude> [1,2] >>= (\n -> ['a', 'b'] >>= \ch -> return (n, ch))
[(1,'a'),(1,'b'),(2,'a'),(2,'b')]
Является ли >>=
левым ассоциативным? Когда круглые скобки отсутствуют, почему GHCi оценивает выражение так, как будто >>=
является правильным ассоциативным?