Continued fraction: Difference between revisions
Content added Content deleted
m (→{{header|Haskell}}: Guards in place of an if then else.) |
m (→{{header|Phix}}: simplify: use functions with multiple returns) |
||
Line 2,051: | Line 2,051: | ||
=={{header|Phix}}== |
=={{header|Phix}}== |
||
⚫ | |||
{{trans|ALGOL_68}} |
|||
<lang Phix>function continued_fraction(integer steps, fa, fb) |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
function |
function continued_fraction(integer f, steps=precision) |
||
⚫ | |||
⚫ | |||
⚫ | |||
{a, b} = f(n) |
|||
⚫ | |||
⚫ | |||
{a} = f(0) |
|||
⚫ | |||
⚫ | |||
function |
function sqr2(integer n) return {iff(n=0?1:2),1} end function |
||
function nap_b(integer n) return iff(n=1?1:n-1) end function |
|||
function |
function nap(integer n) return {iff(n=0?2:n),iff(n=1?1:n-1)} end function |
||
function pi_b(integer n) return iff(n=1?1:power(2*n-1,2)) end function |
|||
⚫ | |||
⚫ | |||
printf(1,"Precision: %d\n", {precision}) |
printf(1,"Precision: %d\n", {precision}) |
||
printf(1,"Sqr(2): %.10g\n", {continued_fraction( |
printf(1,"Sqr(2): %.10g\n", {continued_fraction(sqr2)}) |
||
printf(1,"Napier: %.10g\n", {continued_fraction( |
printf(1,"Napier: %.10g\n", {continued_fraction(nap)}) |
||
printf(1,"Pi: %.10g\n", {continued_fraction( |
printf(1,"Pi: %.10g\n", {continued_fraction(pi)})</lang> |
||
{{Out}} |
{{Out}} |
||
<pre> |
<pre> |