Smalltalk を書くのは誰だろうw / Coderetreat in Drecom powered by AgileShibuya on Zusaar zusaar.com/event/269004 @zusaarさんから
— Yuji(秒読み)さん (@yujiorama) 4月 21, 2012
―というのを見かけたので、ためしに書いてみました。前にも似たようなのを書いたことがあるような気もしますが気にしない。w
| life | life := [:array2d | | sum survivs | sum := array2d * 0. #(-1 0 1) do: [:dx | #(-1 0 1) do: [:dy | sum := sum + ((array2d collect: [:row | row flipRotated: dx*2]) flipRotated: dy*2)]]. survivs := #(3 4) collect: [:alive | sum collect: [:row | row collect: [:elm | (elm = alive) asBit]]]. (survivs * {1. array2d}) sum]. life value: #( (0 0 0 0 0) (0 0 1 1 0) (0 1 1 0 0) (0 0 1 0 0) (0 0 0 0 0)) "=> #( (0 0 0 0 0) (0 1 1 1 0) (0 1 0 0 0) (0 1 1 0 0) (0 0 0 0 0)) "