Lot6 of Haskell

めっきり忙しくなってきましたが、下の階の連中がHaskellやらで大いに盛り上がっています。 休憩室にもすごいH本がなにげに置いてあったりする <--- Haskell党 立党か?

ロト6もキャリオーバーなので少しハスケッてみました。

*Main> let p6 = combination 6 [1..43]    -- 組合せ定義
*Main> let lot6 n m f = [ x | x <- p6 , (foldl (+) 0 x) == n,    (foldr (-) 0 x) <= m , f x ]  --  List内包 複数の条件定義
*Main> let fx = (\x -> and [ elem 11 x , elem 29 x, elem 32 x , elem 37 x])  -- List内包に食わせる お好きな番号
*Main> lot6 150 -40 fx  -- ソルトを指定して実行
*Main> length  $  lot6 150 -40 fx  -- 数を確認

PythonもList内包がありますが条件指定を複数のλでやれるのが良い感じ(if .. else .. ちょっと美しくない)

combination は見せられませんけどね!(多分 誤実装)

実行速度を考慮(お好きな番号、ソルト)すればアプリ転用になるかも・・・。