fork download
  1. import Data.Ratio
  2.  
  3. data Tree a = Node (Tree a) a (Tree a)
  4.  
  5. cf (Just r) [] = r
  6. cf (Just r) (x:xs) = cf (Just $ fromIntegral x + 1 / r) xs
  7. cf Nothing [] = 0
  8. cf Nothing (x:xs) = cf (Just $ fromIntegral x) xs
  9.  
  10. make :: Bool -> [Integer] -> Tree Rational
  11. make b (x:xs) = Node (make True l) (cf Nothing $ x:xs) (make False r) where
  12. (l,r) = if b
  13. then (x+1 : xs, 2 : x-1 : xs)
  14. else (2 : x-1 : xs, x+1 : xs)
  15.  
  16. t :: Tree Rational
  17. t = make False [1]
  18.  
  19. bfs :: Tree a -> [Tree a]
  20. bfs t = t : ext (bfs t) where
  21. ext ((Node l _ r):qs) = l : r : ext qs
  22.  
  23. extract :: Tree a -> a
  24. extract (Node _ x _) = x
  25.  
  26. main = mapM_ print $ take 200 $ map extract $ bfs t
Success #stdin #stdout 0s 4720KB
stdin
Standard input is empty
stdout
1 % 1
1 % 2
2 % 1
1 % 3
2 % 3
3 % 2
3 % 1
1 % 4
2 % 5
3 % 5
3 % 4
4 % 3
5 % 3
5 % 2
4 % 1
1 % 5
2 % 7
3 % 8
3 % 7
4 % 7
5 % 8
5 % 7
4 % 5
5 % 4
7 % 5
8 % 5
7 % 4
7 % 3
8 % 3
7 % 2
5 % 1
1 % 6
2 % 9
3 % 11
3 % 10
4 % 11
5 % 13
5 % 12
4 % 9
5 % 9
7 % 12
8 % 13
7 % 11
7 % 10
8 % 11
7 % 9
5 % 6
6 % 5
9 % 7
11 % 8
10 % 7
11 % 7
13 % 8
12 % 7
9 % 5
9 % 4
12 % 5
13 % 5
11 % 4
10 % 3
11 % 3
9 % 2
6 % 1
1 % 7
2 % 11
3 % 14
3 % 13
4 % 15
5 % 18
5 % 17
4 % 13
5 % 14
7 % 19
8 % 21
7 % 18
7 % 17
8 % 19
7 % 16
5 % 11
6 % 11
9 % 16
11 % 19
10 % 17
11 % 18
13 % 21
12 % 19
9 % 14
9 % 13
12 % 17
13 % 18
11 % 15
10 % 13
11 % 14
9 % 11
6 % 7
7 % 6
11 % 9
14 % 11
13 % 10
15 % 11
18 % 13
17 % 12
13 % 9
14 % 9
19 % 12
21 % 13
18 % 11
17 % 10
19 % 11
16 % 9
11 % 6
11 % 5
16 % 7
19 % 8
17 % 7
18 % 7
21 % 8
19 % 7
14 % 5
13 % 4
17 % 5
18 % 5
15 % 4
13 % 3
14 % 3
11 % 2
7 % 1
1 % 8
2 % 13
3 % 17
3 % 16
4 % 19
5 % 23
5 % 22
4 % 17
5 % 19
7 % 26
8 % 29
7 % 25
7 % 24
8 % 27
7 % 23
5 % 16
6 % 17
9 % 25
11 % 30
10 % 27
11 % 29
13 % 34
12 % 31
9 % 23
9 % 22
12 % 29
13 % 31
11 % 26
10 % 23
11 % 25
9 % 20
6 % 13
7 % 13
11 % 20
14 % 25
13 % 23
15 % 26
18 % 31
17 % 29
13 % 22
14 % 23
19 % 31
21 % 34
18 % 29
17 % 27
19 % 30
16 % 25
11 % 17
11 % 16
16 % 23
19 % 27
17 % 24
18 % 25
21 % 29
19 % 26
14 % 19
13 % 17
17 % 22
18 % 23
15 % 19
13 % 16
14 % 17
11 % 13
7 % 8
8 % 7
13 % 11
17 % 14
16 % 13
19 % 15
23 % 18
22 % 17
17 % 13
19 % 14