Hi Wojtek,

> True, I would lose that advantage, but I think the main advantage of the
> grid approach are the local relationships between neighbors, not access by
> name.

Yes. But if I elaborate my proposal of separate namespaces, you could have both
advantages:

   (load "@lib/simul.l")

   # Global grid symbols, created in 'pico' namespace
   (off *Grid1 *Grid2 *Grid3)

   # Create each grid in its own namespace
   (symbols 'pico~grid1 'pico)
   (setq *Grid1 (grid 8 8))

   (symbols 'pico~grid2 'pico)
   (setq *Grid2 (grid 8 8))

   (symbols 'pico~grid3 'pico)
   (setq *Grid3 (grid 8 8))

   # Restore search-order
   (symbols '(pico))

Then:

   : (symbols '(grid2 pico)
      (mapc println *Grid2) )
   (a1 a2 a3 a4 a5 a6 a7 a8)
   (b1 b2 b3 b4 b5 b6 b7 b8)
   (c1 c2 c3 c4 c5 c6 c7 c8)
   (d1 d2 d3 d4 d5 d6 d7 d8)
   (e1 e2 e3 e4 e5 e6 e7 e8)
   (f1 f2 f3 f4 f5 f6 f7 f8)
   (g1 g2 g3 g4 g5 g6 g7 g8)
   (h1 h2 h3 h4 h5 h6 h7 h8)
   -> ("h1" "h2" "h3" "h4" "h5" "h6" "h7" "h8")

but

   : (symbols '(grid2 pico)
      (mapc println *Grid1) )
   ("a1" "a2" "a3" "a4" "a5" "a6" "a7" "a8")
   ("b1" "b2" "b3" "b4" "b5" "b6" "b7" "b8")
   ("c1" "c2" "c3" "c4" "c5" "c6" "c7" "c8")
   ("d1" "d2" "d3" "d4" "d5" "d6" "d7" "d8")
   ("e1" "e2" "e3" "e4" "e5" "e6" "e7" "e8")
   ("f1" "f2" "f3" "f4" "f5" "f6" "f7" "f8")
   ("g1" "g2" "g3" "g4" "g5" "g6" "g7" "g8")
   ("h1" "h2" "h3" "h4" "h5" "h6" "h7" "h8")
   -> ("h1" "h2" "h3" "h4" "h5" "h6" "h7" "h8")

All these symbols are separated now, but still
readable and printable by name if the correct
namespace is selected.

☺/ A!ex

-- 
UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe

Reply via email to