[id:yarb:20091109]にちょっとしたお題があったので,頭のなかを晒してみよう. 2乗した結果に1から9までの数字が1度ずつ現れる整数をすべて挙げよ まぁ素朴に1から100,000までの数字をチェックしよう. sortを使うからData.ListをインポートすればOKかな. こんな場合はリスト内包表記を使う. Prelude> :module +Data.List Prelude Data.List> [(x,x2) | x <- [1..100000], let x2 = x ^ 2, "123456789" == sort (show x2) ] [(11826,139854276),(12363,152843769),(12543,157326849),(14676,215384976),(15681,245893761) ,(15963,254817369),(1807