In one line of J (both APL and J were created by Kenneth E. Iverson)<p>life=: (3 3 (+&#x2F; e. 3+0,4&amp;{)@,;._3 ])@(0,0,~0,.0,.~])<p>Given a life instance, the next generation can be found by:<p>1. adding extra empty cells, surrounding the life instance,<p>2. tessellating the result, finding every overlapping 3 by 3 subinstance,<p>3. totaling the number of live cells in each subinstance,<p>4. treating a subinstance as a live cell iff that total is a member of the sequence 3,x where x is 3 if the center cell was previously dead, and 4 if the center cell was previously alive (that said, note that 4 is also the index of the center cell, with the sub instance arranged as a flat list).