Archived

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

Way Walker

Reasoning in Haskell

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