Bez nawiasach:Jak wyjaśnić powiązanie operatora powiązania w tym wyrażeniu haskell?
Prelude> [1,2] >>= \n -> ['a', 'b'] >>= \ch -> return (n, ch)
[(1,'a'),(1,'b'),(2,'a'),(2,'b')]
Nawiasy zakładając lewy skojarzenia:
Prelude> ([1,2] >>= \n -> ['a', 'b']) >>= \ch -> return (n, ch)
<interactive>:22:49: Not in scope: `n'
nawiasy przy założeniu właściwej skojarzenia:
Prelude> [1,2] >>= (\n -> ['a', 'b'] >>= \ch -> return (n, ch))
[(1,'a'),(1,'b'),(2,'a'),(2,'b')]
nie jest >>=
wiązanie lewe? Jeśli nie ma nawiasów, dlaczego GHCi ocenia wyrażenie tak, jakby >>=
było prawidłowe asocjacyjne?
lambdas rozciągają się tak daleko, jak to możliwe. Nie udało się tego zobaczyć. Dzięki ! – 0x777