\ life in ck; [2 [0 , +:] do] `edge def \ glue 0 to top, left; [[|:] map |:] `mirror def \ t -> b, l -> r; [2 [edge mirror] do] `pad def \ pad around matrix; [[1 0 0] [1 1 1] [0 1 0]] `rpent set \ r pentomino; [1 !.] `l def \ left shift; [-1 !.] `r def \ right shift; [[[[r] map r ] [[r] map l ] [[l] map r ] [[l] map l ] [[l] map ] [[r] map ] [r ] [l ]] [i] right] `adj def \ adjacencies; [dup adj [+] iterate dup 3 = [2 = &] dip |] `next def \ next generation; [next dup " *" of sysout;] `life def \ next, output; [[sysin C ~] [life] while] `go def \ continue until input; rpent 10 [pad] do go;