On Oct 10, 10:56 am, Martin DeMello <[EMAIL PROTECTED]> wrote:
> On Oct 9, 12:29 pm, "Mark H." <[EMAIL PROTECTED]> wrote:
>
> > a mapping.  However, if you find yourself doing this a lot, you might
> > want to think about a more Clojure-like idiom that doesn't require
> > destructive updates and minimizes consing for local changes (e.g., a
> > quadtree).
>
> Interesting idea, but typical operations will be iterating along the
> cells in a given row or column, so a 2d doubly-linked list would
> probably work better than any sort of space-partitioning tree. But
> then I lose easy random access to a cell. Vector(-of-vectors) and {[x
> y] => cell} do seem like my best bets here.

Depends on what you want with the data structure.  Some people might
want to take slices of matrices -- e.g., the following (in Matlab
notation):

A( 1:2:end, 1:3:end )

which is a matrix containing every second row and every third column
of A.  Implementing this is much easier and more efficient if all the
data is in a single flat array, than if it's a vector of vectors.
Also, imagine the pain of matrix-matrix multiplication with a list-of-
lists.  But if you always mean to iterate rowwise over your 2-D array,
then list-of-lists is just fine.

mfh

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To post to this group, send email to clojure@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to