Ich denke, dass Lazy Racket sollte nützlich sein für die Behandlung von unendlichen Listen. Nach den Wikipedia Lazy Racket article, fibs
(die unendliche Liste der Fibonacci-Zahlen) kann wie folgt definiert werden:Scheme (Lazy Racket) eine unendliche Liste von natürlichen Zahlen
;; An infinite list:
(define fibs (list* 1 1 (map + fibs (cdr fibs))))
Wie wir eine unendliche Liste von natürlichen Zahlen definieren?
zum Vergleich, in Haskell ist es bekannt als 'iterate' (Haskell hat wirklich gute Namen für solche Funktionen):' iterate fx = x: iteriere f (fx) '. Und für "output" hat es '' take n [] = []; nimm 0 xs = []; n (x: xs) = x: nimm (n-1) xs''. ("a: b" in Haskell ist wie "(a. b)" in Schema). Also 'nats = iterate (1+) 1' und wir sehen die ersten 10 von ihnen mit 'take 10 nats'. Schläger hat auch 'nehmen'. –
Danke @Wii Ness nochmal, sehr informativ. –