Elementary cellular automaton/Random number generator: Difference between revisions

Rename Perl 6 -> Raku, alphabetize, minor clean-up
(Rename Perl 6 -> Raku, alphabetize, minor clean-up)
Line 12:
;Reference:
* [http://www.cs.indiana.edu/~dgerman/2005midwestNKSconference/dgelbm.pdf Cellular automata: Is Rule 30 random]? (PDF).
 
=={{header|C}}==
64-bits array size, cyclic borders.
Line 547 ⟶ 548:
print $sum, $n == 10 ? "\n" : " ";
}</lang>
{{out}}
<pre>220 197 147 174 117 97 149 171 240 241</pre>
 
=={{header|Perl 6}}==
<lang perl6>class Automaton {
has $.rule;
has @.cells;
has @.code = $!rule.fmt('%08b').flip.comb».Int;
method gist { "|{ @!cells.map({+$_ ?? '#' !! ' '}).join }|" }
method succ {
self.new: :$!rule, :@!code, :cells(
@!code[
4 «*« @!cells.rotate(-1)
»+« 2 «*« @!cells
»+« @!cells.rotate(1)
]
)
}
 
my Automaton $a .= new: :rule(30), :cells( flat 1, 0 xx 100 );
 
say :2[$a++.cells[0] xx 8] xx 10;</lang>
{{out}}
<pre>220 197 147 174 117 97 149 171 240 241</pre>
Line 692 ⟶ 668:
"6d85153a987dad6f013bc6159a41bf95b9d9b14af87733e17c702a3dc9052172"
"fc6fd302f5ea8f2fba6f476cfe9d090dc877dbd558e5afba49044d05b14d258"</pre>
 
=={{header|Perl 6Raku}}==
(formerly Perl 6)
<lang perl6>class Automaton {
has $.rule;
has @.cells;
has @.code = $!rule.fmt('%08b').flip.comb».Int;
method gist { "|{ @!cells.map({+$_ ?? '#' !! ' '}).join }|" }
method succ {
self.new: :$!rule, :@!code, :cells(
@!code[
4 «*« @!cells.rotate(-1)
»+« 2 «*« @!cells
»+« @!cells.rotate(1)
]
)
}
 
my Automaton $a .= new: :rule(30), :cells( flat 1, 0 xx 100 );
 
say :2[$a++.cells[0] xx 8] xx 10;</lang>
{{out}}
<pre>220 197 147 174 117 97 149 171 240 241</pre>
 
=={{header|Ruby}}==
Line 710 ⟶ 712:
241
</pre>
 
=={{header|Rust}}==
<lang rust>
Line 738 ⟶ 741:
157 209 228 58 87 195 212 106 147 244
</pre>
 
=={{header|Scheme}}==
<lang scheme>
10,327

edits