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

Re: optional argument notation

   I notice that in all of your documents (including SRFI-1) you use this
   notation for optional arguments:

       string-hash    s [bound start end] -> integer

   I find this notation to be missleading because it suggests that you
   can only pass one or four parameters (but I believe you want 1, 2, or
   4).  So you should write:

       string-hash    s [bound [start end]] -> integer

It must be misleading, since you got it wrong both ways! a [b c d] means
these are all OK:
  a b
  a b c
  a b c d

I find the pedantic alternative of writing, e.g.,
       string-hash    s [bound [start [end]]] -> integer
too ugly and hard to parse.

If there *were* a case where optional args were "chunked," it would be
rare enough that I could simply mention it in the accompanying text.

I will add a little explanatory paragraph to the SRFIs describing the
meaning of this notation. How's that?