Conway's Game of Life in Erlang, in 2 hours, with 0 Erlang experience, in 20 lines of code.
1337 h4x0rs:
- @jszmajda
- @ngauthier
- @ericoestrich
- @danivovich
- @kafuchau
-module(gol). | |
-compile(export_all). | |
lives(2,true) -> | |
true; | |
lives(3,_) -> | |
true; | |
lives(_,_) -> | |
false. | |
intersect_lists(A,B) -> | |
sets:to_list(sets:intersection(sets:from_list(A), sets:from_list(B))). | |
neighbors(Xin,Yin, World) -> | |
Ns = [{X+Xin, Y+Yin, true} || X <- [-1,0,1], Y <- [-1,0,1] ], | |
length(intersect_lists(World, Ns)) | |
- length([ true || {A,B,true} <- World, A == Xin, B == Yin ]). | |
transmute_world(World) -> | |
[ {X, Y, gol:lives(gol:neighbors(X,Y, World), Alive)} || {X,Y,Alive} <- World ]. |