naoto #4668(2007/12/07 04:45 GMT) [ Scheme ] Rating0/0=0.00
なんとなくstreamを使ってみた。 sieveとprimesはSICPのやつ。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
(use util.stream) (use gauche.collection) (define (integers-starting-from n) (stream-cons n (integers-starting-from (+ n 1)))) (define (sieve stream) (define (divisible? x y) (= (remainder x y) 0)) (stream-cons (stream-car stream) (sieve (stream-filter (lambda (x) (not (divisible? x (stream-car stream)))) (stream-cdr stream))))) (define primes (sieve (integers-starting-from 2))) (define (number->digit-stream n) (stream-map (lambda (c) (- (char->integer c) (char->integer #\0))) (string->stream (number->string n)))) (define (goedel n) (apply * (stream->list (stream-map (lambda (pk nk) (expt pk nk)) primes (number->digit-stream n)))))
Rating0/0=0.00-0+
[ reply ]
naoto
#4668()
[
Scheme
]
Rating0/0=0.00
なんとなくstreamを使ってみた。 sieveとprimesはSICPのやつ。
Rating0/0=0.00-0+
[ reply ]