codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
(require (lib "40.ss" "srfi")) (require (lib "43.ss" "srfi")) (define (pi-summands n) (stream-cons (/ 1.0 n) (stream-map - (pi-summands (+ n 2))))) (define (scale-stream stream factor) (stream-map (lambda (x) (* x factor)) stream)) (define (add-streams s1 s2) (stream-map + s1 s2)) (define (partial-sums s) (define sums (stream-cons 0 (add-streams s sums))) (stream-cdr sums)) (define pi-stream (scale-stream (partial-sums (pi-summands 1)) 4)) (define (stream-ref s n) (if (= n 0) (stream-car s) (stream-ref (stream-cdr s) (- n 1)))) (define (square x) (* x x)) (define (euler-transform s) (let ((s0 (stream-ref s 0)) (s1 (stream-ref s 1)) (s2 (stream-ref s 2))) (stream-cons (- s2 (/ (square (- s2 s1)) (+ s0 (* -2 s1) s2))) (euler-transform (stream-cdr s))))) (define (make-tableau transform s) (stream-cons s (make-tableau transform (transform s)))) (define (accelerated-sequence transform s) (stream-map stream-car (make-tableau transform s))) (define head stream-car) (define tail (lambda (stream) (stream-cdr stream))) (letrec ( (n 10) (loop (lambda (s) (if (not (= n 0)) (begin (set! n (- n 1)) (write (head s)) (newline) (loop (tail s))))))) (loop pi-stream))
Private
[
?
]
Run code
Submit