ちょっと感動したんで書いとく

まずはプログラミングhaskellからの引用


x^2+y^2=z^2を満たす正の整数をピタゴラス数と呼び、三つ組(x,y,z)で表す。ピタゴラス数のリストを生成する関数pythsを定義せよ。ただし、ピタゴラス数の要素は、与えられた上限以下であるとする。

以下に例を示す。

>pyths 10
[(3,4,5),(4,3,5),(6,8,10),(8,6,10)]

引用終わり

これ、haskellで書くと(と言うか、リスト内包表記使える言語だと同じ感じ)、こうなるんだけど、

pyths n = [(x,y,z) | x <- [1..n], y<-[1..n], z<-[1..n], x^2+y^2 == z^2]

リスト内包表記以外の方法だとこんなに短く書け無いんじゃ無かろうか

pythonはリスト内包表記あるの知ってるけど、他の言語でも、こんなに短く書けるんだろうか。。。