Я наблюдал за результатами реализации последовательности Fibobacci в Haskell, когда я понял некоторые "странные" формы в оптации чисел.
Прежде всего, это код Haskell, который я придумал:
fib :: Integer -> [Integer]
fib 0 = [0]
fib 1 = [0, 1]
fib a = (fib' 0 1 [0,1] 1 a)
fib' :: Integer -> Integer -> [Integer] -> Integer -> Integer -> [Integer]
fib' n1 n2 l cont n
| cont == n = l
| otherwise = (fib' n2 n3 (l++[n3]) (cont+1) n)
where n3 = n2 + n1
Для чего-то вроде fib 10 выход будет: [0,1,1,2,3,5,8,13,21,34,55] Затем я хотел попробовать что-то вроде fib 1000, в то время как числа невероятно большие и все... то, что я увидел, было каким-то странным elipses, образованным ",", который распечатывается между каждым Integer из списка, например:
Итак, я увеличил размер окна вывода, чтобы увидеть, будет ли этот странный шаблон повторяться, и ответ "да":
И мой вопрос:
Кто-нибудь знает, почему появляется этот шаблон в "," между целыми числами из списка? Разве это не должно быть более случайным и менее похожим на elipses?