先日、Haskellのリストを処理する関数で、2つのリストの直積(direct product)を返す関数を探していて、僕は見つけられなかった。仕方ないのでリスト内包表記で書いた。 [(x, y) | x <- [0,1], y <- ['a','b']]--[(0,'a'),(0,'b'),(1,'a'),(1,'b')] 先日、見知らぬ人のブログを見ていて、我が目を疑った。全く同じ結果を返す以下のようなコード例が記されていたのだ。 main = print ff = do x <- [0,1] y <- ['a','b'] return ((x, y))--[(0,'a'),(0,'b')…