17 lines
437 B
Racket
17 lines
437 B
Racket
#lang racket
|
|
(require racket/stream)
|
|
|
|
(define (van-eck)
|
|
(define (next val n seen)
|
|
(define val1 (- n (hash-ref seen val n)))
|
|
(stream-cons val (next val1 (+ n 1) (hash-set seen val n))))
|
|
(next 0 0 (hash)))
|
|
|
|
(define (get m n s)
|
|
(stream->list
|
|
(stream-take (stream-tail s m)
|
|
(- n m))))
|
|
|
|
"First 10 terms:" (get 0 10 (van-eck))
|
|
"Terms 991 to 1000 terms:" (get 990 1000 (van-eck)) ; counting from 0
|