無限リスト(using 遅延評価)
流行っているようなので、誰かが手を出す前にSchemeで書いてみた。
id:namasute0のソースをそのまま写しただけで動いたよ。遅延評価がある言語は便利だな、と。
(define primes_from_2 (cons 2 (delay (primes_from 3)))) (define (primes_from n) (if (is_prime n) (cons n (delay (primes_from (+ n 1)))) (primes_from (+ n 1)))) (define (is_prime n) (define (iter n x) (define m (car x)) (cond *1
印字してみる
(define (print_primes n x) (if (= n 0) '() (begin (display (car x)) (newline) (print_primes (- n 1) (force (cdr x))))))