Penso che Lazy Racket dovrebbe essere utile per gestire liste infinite. Secondo il Wikipedia Lazy Racket article, fibs
(la lista infinita di numeri di Fibonacci) può essere definito come:Scheme (Lazy Racket) una lista infinita di numeri naturali
;; An infinite list:
(define fibs (list* 1 1 (map + fibs (cdr fibs))))
Come possiamo definire una lista infinita dei numeri naturali?
per il confronto, in Haskell è noto come 'iterato' (Haskell ha davvero un buon nome per tali funzioni):' iterate fx = x: iterate f (fx) '. E per "output" ha '' take n [] = []; prendi 0 xs = []; prendi n (x: xs) = x: take (n-1) xs''. ('a: b' in Haskell è come' (a. b) 'in Schema). Quindi 'nats = iterate (1+) 1' e vediamo i primi 10 di essi con' take 10 nats'. Anche la racchetta ha 'take'. –
Grazie ancora @Wii Ness, molto istruttivo. –