Write float arrays to a text file: Difference between revisions

Content added Content deleted
(Rename Perl 6 -> Raku, alphabetize, minor clean-up)
Line 205: Line 205:
3 1.7321
3 1.7321
1E+11 3.1623E+05</pre>
1E+11 3.1623E+05</pre>



=={{header|C++}}==
=={{header|C++}}==
Line 1,132: Line 1,131:


writedat("sqrt.dat", \@x, \@y);</lang>
writedat("sqrt.dat", \@x, \@y);</lang>

=={{header|Perl 6}}==
===Perl 5-ish===
Written in the style of the 2nd Perl 5 example.
<lang perl6>sub writefloat ( $filename, @x, @y, $x_precision = 3, $y_precision = 5 ) {
my $fh = open $filename, :w;
for flat @x Z @y -> $x, $y {
$fh.printf: "%.*g\t%.*g\n", $x_precision, $x, $y_precision, $y;
}
$fh.close;
}
my @x = 1, 2, 3, 1e11;
my @y = @x.map({.sqrt});

writefloat( 'sqrt.dat', @x, @y );</lang>
{{out}}
<pre>1 1
2 1.4142
3 1.7321
1e+11 3.1623e+05</pre>
===Idiomatic===
Written in a more idiomatic style.
<lang perl6>sub writefloat($filename, @x, @y, :$x-precision = 3, :$y-precision = 3) {
open($filename, :w).print:
join '', flat (@x».fmt("%.{$x-precision}g") X "\t") Z (@y».fmt("%.{$y-precision}g") X "\n");
}
my @x = 1, 2, 3, 1e11;
writefloat('sqrt.dat', @x, @x».sqrt, :y-precision(5));</lang>
{{out}}
<pre>1 1
2 1.4142
3 1.7321
1e+11 3.1623e+05</pre>


=={{header|Phix}}==
=={{header|Phix}}==
Line 1,347: Line 1,312:
|#
|#
</lang>
</lang>

=={{header|Raku}}==
(formerly Perl 6)
===Perl 5-ish===
Written in the style of the 2nd Perl 5 example.
<lang perl6>sub writefloat ( $filename, @x, @y, $x_precision = 3, $y_precision = 5 ) {
my $fh = open $filename, :w;
for flat @x Z @y -> $x, $y {
$fh.printf: "%.*g\t%.*g\n", $x_precision, $x, $y_precision, $y;
}
$fh.close;
}
my @x = 1, 2, 3, 1e11;
my @y = @x.map({.sqrt});

writefloat( 'sqrt.dat', @x, @y );</lang>
{{out}}
<pre>1 1
2 1.4142
3 1.7321
1e+11 3.1623e+05</pre>
===Idiomatic===
Written in a more idiomatic style.
<lang perl6>sub writefloat($filename, @x, @y, :$x-precision = 3, :$y-precision = 3) {
open($filename, :w).print:
join '', flat (@x».fmt("%.{$x-precision}g") X "\t") Z (@y».fmt("%.{$y-precision}g") X "\n");
}
my @x = 1, 2, 3, 1e11;
writefloat('sqrt.dat', @x, @x».sqrt, :y-precision(5));</lang>
{{out}}
<pre>1 1
2 1.4142
3 1.7321
1e+11 3.1623e+05</pre>


=={{header|Raven}}==
=={{header|Raven}}==
Line 1,675: Line 1,675:
1,000E011 3,16228E005
1,000E011 3,16228E005
</pre>
</pre>

=={{header|Yabasic}}==
=={{header|Yabasic}}==
<lang Yabasic>x$ = "1 2 3 1e11"
<lang Yabasic>x$ = "1 2 3 1e11"