Here is the C translated into Perl in a straightforward way:
use strict;
my ($x, $y, $k, $counter);
my @b = split //, " .:,;!/>)|&IH%*#";
my ($r, $i, $z, $Z, $t, $c, $C);
my ($begin, $end);
my $counter = 0;
$begin = time;
while($counter < 1000){
for ($y=30; print("\n"), $C = $y*0.1 - 1.5, $y--;) {
for ($x=0; $c = $x*0.04 - 2, $z=0, $Z=0, $x++ < 75;) {
for ($r=$c, $i=$C, $k=0; $t = $z*$z - $Z*$Z + $r, $Z = 2*$z*$Z +
+ $i, $z=$t
, $k<112; $k++) {
last if ($z*$z + $Z*$Z > 10);
}
printf ($b[$k%16]);
}
}
$counter++;
}
$end = time;
printf ("%d count in %ld secs \n", $counter, $end - $begin);
Note that this is going to be much slower than both Parrot and C. Without knowing much about Parrot, I'd be surprised if Perl 6 actually gets compiled to Parrot that is as efficient as the handrolled code above.
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.