RosettaCodeData/Task/Bell-numbers/Haskell/bell-numbers-1.hs
2023-07-01 13:44:08 -04:00

16 lines
387 B
Haskell

bellTri :: [[Integer]]
bellTri =
let f xs = (last xs, xs)
in map snd (iterate (f . uncurry (scanl (+))) (1, [1]))
bell :: [Integer]
bell = map head bellTri
main :: IO ()
main = do
putStrLn "First 10 rows of Bell's Triangle:"
mapM_ print (take 10 bellTri)
putStrLn "\nFirst 15 Bell numbers:"
mapM_ print (take 15 bell)
putStrLn "\n50th Bell number:"
print (bell !! 49)