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

Re: self evaluation, immutability

 | Date: Sat, 01 Jan 2005 19:14:15 -1000 (HST)
 | From: Shiro Kawai <shiro@xxxxxxxx>
 | srfi-58-new.html has an example:
 |   (array-dimensions #2A:integer+16((0 1 2) (3 5 4))) ==> (2 3)
 | Do you suggest arrays are self-evaluating objects, or a quote is
 | simply missing before the array literal?

The quote was missing.  I have expanded that section to:

  A two-by-three array of nonnegative 16.bit integers is written:

  #2A:integer+16((0 1 2) (3 5 4))

  Note that this is the external representation of an array, not an
  expression evaluating to a array.  Like vector constants, array
  constants must be quoted:

  '#2a:INTEGER+16((0 1 2) (3 5 4))
		 ==> #2A:integer+16((0 1 2) (3 5 4))

 | I also assume literal arrays are immutable, like literal strings
 | and vectors, right?  Although the immutability is implied from
 | R5RS section 3.4, it may be nice to have it explicit in srfi-58,
 | since I see modifying literal values is a common type of errors.

Thanks for your suggestions.  I have added the paragraph:

  Literal array constants are immutable objects.  It is an error to
  attempt to store a new value into a location that is denoted by an
  immutable object.