Nếu không có bất kỳ dấu ngoặc đơn:Làm thế nào để bạn giải thích sự kết hợp của toán tử liên kết trong biểu thức haskell này?
Prelude> [1,2] >>= \n -> ['a', 'b'] >>= \ch -> return (n, ch)
[(1,'a'),(1,'b'),(2,'a'),(2,'b')]
ngoặc giả associativity trái:
Prelude> [1,2] >>= (\n -> ['a', 'b'] >>= \ch -> return (n, ch))
[(1,'a'),(1,'b'),(2,'a'),(2,'b')]
Không phải là >>=
kết trái:
Prelude> ([1,2] >>= \n -> ['a', 'b']) >>= \ch -> return (n, ch)
<interactive>:22:49: Not in scope: `n'
ngoặc associativity đúng giả? Khi không có dấu ngoặc đơn, tại sao GHCi đánh giá biểu thức như thể >>=
là kết hợp đúng?
lambdas mở rộng càng nhiều càng tốt. Không thấy được. Cảm ơn ! – 0x777