4 ms·
No need for the dollar sign in the second example :) A nice thing about Haskell list comprehensions is they're based on a trivial transformation to monad synta
by centimeter 6y ago
No need for the dollar sign in the second example :)
A nice thing about Haskell list comprehensions is they're based on a trivial transformation to monad syntax, which makes it easier to factor out complex list transformations into multiple little bites. I've run into this problem in Python. Also, Python list comprehensions can often behave very unexpectedly due to mutability.
Here's an example of the monad syntax:
[(x,y) | x <- [1..10], y <- [1..x], odd (x + y)]
equiv
do
x <- [1..10]
y <- [1..x]
guard $ odd (x + y)
return (x,y)
Lots of combinatorics problems can be elegantly solved using the list monad like that.
- mypalmike 6y agoExample where Python list comprehensions behave very unexpectedly...?