Pi: Difference between revisions
Content added Content deleted
(→{{header|Ruby}}: Adapted to use Enumerator; simplified handling of dot.) |
|||
Line 3,860: | Line 3,860: | ||
27019385211055596446229489549303819644288109756659334461284756482337867831652712019 |
27019385211055596446229489549303819644288109756659334461284756482337867831652712019 |
||
09145648566923460348610454326648213393607260249141273</pre> |
09145648566923460348610454326648213393607260249141273</pre> |
||
=={{header|Scheme}}== |
|||
<lang scala> |
|||
(import (rnrs)) |
|||
(define (calc-pi yield) |
|||
(let loop ((q 1) (r 0) (t 1) (k 1) (n 3) (l 3)) |
|||
(if (< (- (+ (* 4 q) r) t) (* n t)) |
|||
(begin |
|||
(yield n) |
|||
(loop (* q 10) |
|||
(* 10 (- r (* n t))) |
|||
t |
|||
k |
|||
(- (div (* 10 (+ (* 3 q) r)) t) (* 10 n)) |
|||
l)) |
|||
(begin |
|||
(loop (* q k) |
|||
(* (+ (* 2 q) r) l) |
|||
(* t l) |
|||
(+ k 1) |
|||
(div (+ (* q (* 7 k)) 2 (* r l)) (* t l)) |
|||
(+ l 2)))))) |
|||
(let ((i 0)) |
|||
(calc-pi |
|||
(lambda (d) |
|||
(display d) |
|||
(set! i (+ i 1)) |
|||
(if (= 40 i) |
|||
(begin |
|||
(newline) |
|||
(set! i 0)))))) |
|||
</lang> |
|||
Output: |
|||
<pre>3141592653589793238462643383279502884197 |
|||
1693993751058209749445923078164062862089 |
|||
9862803482534211706798214808651328230664 |
|||
7093844609550582231725359408128481117450 |
|||
2841027019385211055596446229489549303819 |
|||
6442881097566593344612847564823378678316 |
|||
5271201909145648566923460348610454326648 |
|||
2133936072602491412737245870066063155881 |
|||
7488152092096282925409171536436789259036 |
|||
0011330530548820466521384146951941511609 |
|||
4330572703657595919530921861173819326117 |
|||
9310511854807446237996274956735188575272 |
|||
4891227938183011949129833673362440656643 |
|||
0860213949463952247371907021798609437027 |
|||
7053921717629317675238467481846766940513 |
|||
2000568127145263560827785771342757789609 |
|||
...</pre> |
|||
=={{header|Seed7}}== |
=={{header|Seed7}}== |