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.
Jussi Piitulainen wrote:
Per Bothner writes:The lower bound b and the upper bound e of a dimension are exact integers with |(<= b e)|.This should be (<= b (- e 1)) if you believe in APL, which has "always" allowed 0-element arrays. So does Common Lisp. I think we should too,We do. The upper bound is excluded from the dimension, same as the arguments to substring in R5RS.
Sorry - I skimmed too fast. That representation is unfortuantely not very common and it might be confusing. Other languages that allow arbitrary lower bounds generally use an upper bound that is *inclusive* - think Fortran, Pascal, Ada, Algol. Languages that use an exclusive upper bound generally hard-wire the lower bound to 0, so the upper bound is actually the length. That is why I think (lower-bound, length) might be less confusing, though I agree compatibility with substring is an argument in favor of the exclusive-lower-bound convention. --Per