RosettaCodeData/Task/Hamming-numbers/Haskell/hamming-numbers-5.hs
2019-09-12 10:33:56 -07:00

9 lines
269 B
Haskell

hamm = foldr merge1 [] . iterate (map (5*)) .
foldr merge1 [] . iterate (map (3*)) $ iterate (2*) 1
where
merge1 (x:xs) ys = x : merge xs ys
{- 1, 2, 4, 8, 16, 32, ...
3, 6, 12, 24, 48, 96, ...
9, 18, 36, 72, 144, 288, ...
27, ... -}