Archived

This topic is now archived and is closed to further replies.

Reasoning in Haskell

This topic is 5311 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I''ve been trying to learn Haskell. In "Yet Another Haskell Tutorial" it mentions that
do x <- l1
   y <- l2
   return (x, y)
 
returns the same value as
[(x, y) | x <- l1, y <- l2]
 
I can see that these are the same by using the substitutions, but that doesn''t seem to be how you''re supposed to think about either the do notation or list comprehensions. So, my question is, how am I supposed to reason through the "do" code above? Or am I wrong and you are supposed to reason through it using the substitutions? Or is it just unreasonable?

Share this post


Link to post
Share on other sites