Elementary cellular automaton: Difference between revisions

Content added Content deleted
(→‎{{header|Perl 6}}: some speed tweaks)
Line 170: Line 170:
has ($.rule, @.cells);
has ($.rule, @.cells);
method gist { <| |>.join: @!cells.map({$_ ?? '#' !! ' '}).join }
method gist { <| |>.join: @!cells.map({$_ ?? '#' !! ' '}).join }
method code { $.rule.fmt("%08b").flip.comb }
method code { $!rule.fmt("%08b").flip.comb }
method succ {
method succ {
self.new: :$.rule, :cells(
self.new: :$!rule, :cells(
self.code[
self.code[
4 «*« @.cells.rotate(-1)
(4 X* @!cells.rotate(-1))
Z+ 2 «*« @.cells
Z+ (2 X* @!cells)
Z+ @.cells.rotate(1)
Z+ @!cells.rotate(1)
]
]
)
)
}
}
}
}