shokosブログ

プログラミング

剰余もfor文も使わないでHaskellでfizzbuzzを書いてみた

遅延評価バンザイヽ(^o^)丿

fizz = cycle ["","","fizz"]
buzz = cycle ["","","","","buzz"]

fizzbuzz = zipWith fb [1..100] $ zipWith (++) fizz buzz
        where fb n a
                | a == "" = show n
                | otherwise = a

cycleは循環リストを作る関数なので、GHCiでなにげなく試すとけっこう慌てる。