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 は見せられませんけどね!(多分 誤実装)
実行速度を考慮(お好きな番号、ソルト)すればアプリ転用になるかも・・・。