RosettaCodeData/Task/Stern-Brocot-sequence/Haskell/stern-brocot-sequence-1.hs

15 lines
326 B
Haskell
Raw Permalink Normal View History

2017-09-23 10:01:46 +02:00
import Data.List (elemIndex)
2015-02-20 09:02:09 -05:00
2017-09-23 10:01:46 +02:00
sb :: [Int]
sb = 1 : 1 : f (tail sb) sb
where
f (a:aa) (b:bb) = a + b : a : f aa bb
2015-02-20 09:02:09 -05:00
2017-09-23 10:01:46 +02:00
main :: IO ()
2015-02-20 09:02:09 -05:00
main = do
2017-09-23 10:01:46 +02:00
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)