Email list hosting service & mailing list manager

Update, near finalization David Van Horn (08 Apr 2005 16:19 UTC)
Re: Update, near finalization Per Bothner (08 Apr 2005 17:34 UTC)
Re: Update, near finalization Aubrey Jaffer (08 Apr 2005 20:16 UTC)
Re: Update, near finalization Per Bothner (08 Apr 2005 21:21 UTC)
Re: Update, near finalization Aubrey Jaffer (10 Apr 2005 21:09 UTC)
Re: Update, near finalization Per Bothner (11 Apr 2005 06:23 UTC)
Re: Update, near finalization Aubrey Jaffer (11 Apr 2005 16:38 UTC)
R6RS process Mitchell Wand (11 Apr 2005 17:16 UTC)

Re: Update, near finalization Per Bothner 08 Apr 2005 17:34 UTC

David Van Horn wrote:
> The draft of SRFI 63 Homogeneous and Heterogeneous Arrays has been
> updated to resolve the Issues section (cf previous drafts).  This draft
> will be finalized if there are no concerns raised in the next couple of
> days.
>
>    http://srfi.schemers.org/srfi-63/srfi-63.html

I strongly object.  array-set! is inconsistent with srfi-25, and you
cannot distinguish between the variants by their arguments types.
This is a recipe for disaster.

STFI-25:
(array-set! array k ... obj)
(array-set! array index obj)
SRFI-63:
(array-set! array obj k1 ...)

It is claimed that "Type dispatch on the first argument to array-set!
could support both SRFIs simultaneously."  I don't believe that.
How would you handle:
(define array (vector 'a 'b))
(set! array 1 0)
Is the result #(a 0) or #(1 b)?

make-array is also inconsistent:
SRFI-25:
(make-array shape)
(make-array shape obj)
SRFI-63:
(make-array prototype k1 ...)
It is claimed that: "Type dispatch on the first argument to make-array
could support both SRFIs simultaneously."  I don't believe that is
correct, as written, since a SRFI-25 shape is a d*2 array, and a SRFI-67
prototype can also be an array.  Thus they can conflict.  Consider:
(define v (shape 0 1))
(make-array v 10)

The conflict can be avoided by requiring that prototypes have rank 0
or 1, which seems a reasonable restriction.

Much cleaner would be to choose a different name.
--
	--Per Bothner
xxxxxx@bothner.com   http://per.bothner.com/