[R6RS] Splitting hairs over `map' and friends
Michael Sperber
sperber at informatik.uni-tuebingen.de
Tue Aug 15 07:54:10 EDT 2006
William D Clinger <will at ccs.neu.edu> writes:
> Mike wrote:
>> We say that `map' must accept a procedure of as many arguments as
>> there are list arguments to `map'. (By virtue of R5RS saying "must".)
>> Is an implementation required to check this even if the argument
>> list(s) is/are empty?
>
> No.
OK.
> It is *impossible* for an implementation to check this safely using
> only the operations specified in R5RS or (so far) R6RS.
> Consider, for example:
>
> (map (lambda (x . rest)
> (cond ((null? rest) <ok1>)
> ((null? (cdr rest)) <ok2>)
> (else (error ...))))
> '()
> '()
> '())
>
While I agree with the general point, I don't understand what you're
saying with the example. The procedure still takes three
arguments---surely we don't want to include the case where the
procedure, after having been successfully called, raises any kind of
exception.
Now, do we require that it is a procedure, without any arity checking,
if the lists are empty?
--
Cheers =8-} Mike
Friede, Völkerverständigung und überhaupt blabla
More information about the R6RS
mailing list