リスト内包表記を、ScalaとHaskellでやってみようと思ったんです。というか、Haskellのリスト内包表記をScalaで書き直せないかなと思いました。
こういうやつ。
[(x,y) | x <- [1..9], y <- [1..9], x * y == 24] [(x+y) | x <- [1..9], y <- [1..9], x * y == 24]
この結果は、上から
[(3,8),(4,6),(6,4),(8,3)] [11,10,10,11]
これをScalaでやってみたい。結論は、これ。
for (x <- 1 to 9; y <- 1 to 9; z = x * y; if z == 24) yield(x,y) for (x <- 1 to 9; y <- 1 to 9; z = x * y; if z == 24) yield(x+y)
こういうことですね。直訳したらこうなったけど、List型とかSeq型とかで同じことができるかどうか試してみたいのが今後の課題です。