22 lines
528 B
Factor
22 lines
528 B
Factor
USING: combinators.extras io kernel locals math prettyprint ;
|
|
IN: rosetta-code.pi
|
|
|
|
:: calc-pi-digits ( -- )
|
|
1 0 1 1 3 3 :> ( q! r! t! k! n! l! ) [
|
|
4 q * r + t - n t * < [
|
|
n pprint flush
|
|
r n t * - 10 *
|
|
3 q * r + 10 * t /i n 10 * - n! r!
|
|
q 10 * q!
|
|
] [
|
|
2 q * r + l *
|
|
7 k * q * 2 + r l * + t l * /i n! r!
|
|
k q * q!
|
|
t l * t!
|
|
l 2 + l!
|
|
k 1 + k!
|
|
] if
|
|
] forever ;
|
|
|
|
MAIN: calc-pi-digits
|