RosettaCodeData/Task/Sylvesters-sequence/Haskell/sylvesters-sequence-1.hs
2023-07-01 13:44:08 -04:00

16 lines
468 B
Haskell

sylvester :: [Integer]
sylvester = map s [0 ..]
where
s 0 = 2
s n = succ $ foldr ((*) . s) 1 [0 .. pred n]
main :: IO ()
main = do
putStrLn "First 10 elements of Sylvester's sequence:"
putStr $ unlines $ map show $ take 10 sylvester
putStr "\nSum of reciprocals by sum over map: "
print $ sum $ map ((1 /) . fromInteger) $ take 10 sylvester
putStr "Sum of reciprocals by fold: "
print $ foldr ((+) . (1 /) . fromInteger) 0 $ take 10 sylvester