Continued fraction: Difference between revisions

m
→‎{{header|Perl}}: boilerplate, subroutine signature, formatting for clarity
(Added Wren)
m (→‎{{header|Perl}}: boilerplate, subroutine signature, formatting for clarity)
Line 2,032:
 
=={{header|Perl}}==
We'll useUse closures to implement the infinite lists of coeffficients.
 
<lang perl>subuse continued_fraction {strict;
use warnings;
my ($a, $b, $n) = (@_[0,1], $_[2] // 100);
no warnings 'recursion';
use experimental 'signatures';
 
sub continued_fraction ($a, $b, $n = 100) {
$a->() + ($n &&and $b->() / continued_fraction($a, $b, $n-1));
}
 
printf "√2 ≈ %.9f\n", continued_fraction do { my $n; sub { $n++ ? 2 : 1 } }, sub { 1 };
printf "e ≈ %.9f\n", continued_fraction do { my $n; sub { $n++ ||or 2 } }, do { my $n; sub { $n++ ||or 1 } };
printf "π ≈ %.9f\n", continued_fraction do { my $n; sub { $n++ ? 6 : 3 } }, do { my $n; sub { (2*$n++ + 1)**2 } }, 1_0001000;
printf "π/2 ≈ %.9f\n", continued_fraction do { my $n; sub { 1/($n++ ||or 1) } }, sub { 1 }, 1_0001000;</lang>
{{out}}
<pre>√2 ≈ 1.414213562
2,392

edits