Hey Anand, Thanks for the feedback!
I would have liked to call the arrays "arrays" but java's arrays make that name less than ideal. If people think a better name for the library is persistentarray, I'm not opposed to changing (especially this early in the game). It shouldn't be a problem to maintain immutability and also perform a cross/cartesian product. I'm not sure I understand the problem. -Adler On May 6, 1:05 pm, Anand Patil <anand.prabhakar.pa...@gmail.com> wrote: > On Sat, May 2, 2009 at 11:19 PM, aperotte <apero...@gmail.com> wrote: > > > Hello everyone, > > > I just uploaded some of my work on a new datatype for clojure to a git > > repository. > > >http://github.com/aperotte/persistentmatrix > > > A bit of the rationale and motivation for the datatype is described on > > the github page. I basically wanted to create a datastructure for > > manipulating large amounts of data efficiently and in a human friendly > > way in clojure. > > > Its main features are: > > > 1. Immutability > > 2. Primitive Support > > 3. N-Dimensional – Arbitrary number and size of dimensions (ie. > > ability to create a 4×3×5x6 datastructure) > > 4. N-Dimensional units (ie. ability to create a 10×10 matrix with > > 2×1 units to represent complex numbers) > > 5. Fast submatrix views via structural sharing (ie. constant time > > slicing, transposing, and other data manipulations) > > 6. Maintenance of both deep and superficial dimensionality (ie. > > slicing a 4×3×5x6 along the 3rd dimension will yield a datastructure > > with a superficial dimensionality of 3 and a deep dimensionality of 4) > > 7. Axis and element labeling and label indexing (ie. ability to > > label axes and elements of an axis with strings or any arbitrary > > object) > > 8. Implementing many of the clojure interfaces and thereby > > automatically inheriting much of the functionality of the standard > > library for data structures. > > > I would welcome any feedback. Also, if anyone is interested in > > working together to accelerate its development, that would be welcome > > too! > > Great work! I'm glad to see some numerical advances in Clojure. > > I've got a couple of suggestions: first, you might want to follow numpy and > call n-dimensional arrays 'arrays', and reserve 'matrix' for 2d arrays. Or > not... > > Second, immutability is definitely the right default, but it would be nice > to be able to create nonstandard arrays from Clojure somehow. For example, > say I wanted to compute the matrix (f (- x y)) over the Cartesian product of > vectors x and y. > > Anand --~--~---------~--~----~------------~-------~--~----~ 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 clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -~----------~----~----~----~------~----~------~--~---