[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Some thoughts...

This page is part of the web mail archives of SRFI 25 from before July 7th, 2015. The new archives for SRFI 25 contain all messages, not just those from before July 7th, 2015.



I have just scanned through the SRFI document and a fair bit of the
discussion. Just two quick thoughts.

1) (array-set! a dim0 dim1 ... dimn val) is a *really* bad specification
   for this API. Yes, I know it's compatible with vector-set!, but
   it's still not right. This form is deeply inefficient, requiring
   list packaging of the dimensions (because of the variable length
   argument list) *and* the value to be placed in the array is bundled
   into the same data structure as the indicies.

   either of the following is far better:
        1 (array-set! a val dim0 dim1 ... dimn)
        2 (array-set! a (array-index dim0 dim1 ... dimn) val)

   I like 2 because of symmetry with the array-shap concept. Also it
   has the nice possibility of allowing assignments to larger units of
   the underlying array than just single elements.

2) The SRFI should be a completely abstract proposition. There are so
   many different array implementations that might be desirable in a
   given application that what I really want is an interface over
   which I can parameterize other functions. then I use the builtins
   for small-scale tests and move up to more efficient implementations
   for production (I am specifically thinking of numerical & graph
   applications here where sparse arrays/matrices can be very common).

   This means that any vector/array equivalence is a *bad thing* IMO.
   Preserve disjointness!

david rush
-- 
Christianity has not been tried and found wanting; it has been found
difficult and not tried.
	-- G.K. Chesterton