Stavo guardando i risultati della mia implementazione della sequenza di Fibobacci in Haskell quando ho realizzato alcune forme "strane" nell'ottimizzazione dei numeri.Fibonacci Seq. strani moduli di output (Haskell)
Prima di tutto, questo è il codice Haskell mi è venuta in mente:
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
per qualcosa come 10 fib l'output sarà: [0,1,1,2,3,5, 8,13,21,34,55] Poi ho voluto provare qualcosa come fib 1000, mentre i numeri sono incredibilmente grandi e tutti ... quello che ho visto erano alcune strane elips formate dal "," che è stampato tra ogni intero dalla lista, ad esempio:
così ho maxed la dimensione della finestra di output per vedere se questo strano modello sarebbe ancora ripetere, e la risposta è sì:
E la mia domanda è:
Qualcuno sa perché appare questo modello in " , "tra gli Integer dalla lista? Non dovrebbe essere più casuale e meno come elipses?
Vedere anche [questo reddit post] (http://www.reddit.com/r/haskell/comments/xwfbm/iterate_2_1/). –
Sarebbe fantastico su [CodeGolf] (http://codegolf.stackexchange.com/) – crockeea