Tôi nghĩ rằng Lazy Racket nên hữu ích để xử lý danh sách vô hạn. Theo Wikipedia Lazy Racket article, fibs
(danh sách vô hạn các số Fibonacci) có thể được định nghĩa là:Đề án (Lazy Racket) một danh sách vô hạn các số tự nhiên
;; An infinite list:
(define fibs (list* 1 1 (map + fibs (cdr fibs))))
Làm thế nào để chúng ta xác định một danh sách vô hạn các số tự nhiên?
để so sánh, trong Haskell nó được gọi là 'iterate' (Haskell có tên thực sự tốt cho các chức năng như vậy):' iterate fx = x: iterate f (fx) '. Và đối với "output" nó có '' take n [] = []; lấy 0 xs = []; lấy n (x: xs) = x: lấy (n-1) xs''. ('a: b' trong Haskell giống như' (a. b) 'trong Đề án). Vì vậy, 'nats = iterate (1+) 1' và chúng ta thấy 10 đầu tiên của chúng với' take 10 nats'. Vợt cũng có 'take'. –
Cảm ơn @Wii Ness một lần nữa, rất nhiều thông tin. –