\ cellular automata in ck; [8 2 # swap vs |:] `rule def \ 30 rule; [dup 2 * &: 1 , !] `start def \ 3 start -> 1 1 1 0 1 1 1; [2 [0 , |:] do] `sheet def \ sheet; [dup [*: [|: *:]] [i] right , -1 !.] `cyl def \ cylinder; [swap 2 list |:] `rpair def \ a b -> [b a]; [swap dup #: !: [rpair] dip [gen] right] `ca def \ 15 start 30 rule ca; [_ 3 #. 2 swap sv @] `cell def \ x y z -> n; [[1 unlist] dip swap sheet cell] `gen def \ can substitute cyl for sheet; [stack flatten " *" of sysout;] `disp def \ display; 30 start 25 [90 rule ca] Do disp \ 30 wide, 25 gens, rule 90;