RosettaCodeData/Task/Stern-Brocot-sequence/Haskell/stern-brocot-sequence-1.hs
2019-09-12 10:33:56 -07:00

14 lines
326 B
Haskell

import Data.List (elemIndex)
sb :: [Int]
sb = 1 : 1 : f (tail sb) sb
where
f (a:aa) (b:bb) = a + b : a : f aa bb
main :: IO ()
main = do
print $ take 15 sb
print
[ (i, 1 + (\(Just i) -> i) (elemIndex i sb))
| i <- [1 .. 10] ++ [100] ]
print $ all (\(a, b) -> 1 == gcd a b) $ take 1000 $ zip sb (tail sb)