[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