2010/2/2 Lyndon Maydwell <maydw...@gmail.com>:
> I chose the array mainly for the fast lookup time compared to lists,
> are you suggesting something like creating a "Map (X,Y) Health"? I'm
> not currently updating any structures, rather creating the successor
> from scratch. I can see how the map may work very well for the sparse
> nature of non-early life games now that I think of it.

Because your Health is basically Bool, you can use Set (X,Y) for a set
of live objects.

Creation of new Array is (without knowing some subtle details) is
O(max coordinates difference between live cells). Creation of new Set
(X,Y) is O(NlogN) (N = number of live objects). Most of the cells in
Life are empty, so the Set/Map approach is faster. Also it leads to
very concise code.

Actually, your solution with arrays is the most often occured solution
an imperative programmer will come with. It is simple but not scalable
and not particularly fast.
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to