GNU bug report logs -
#40968
28.0.50; (apply nil)
Previous Next
Reported by: Pip Cet <pipcet <at> gmail.com>
Date: Wed, 29 Apr 2020 18:27:02 UTC
Severity: normal
Tags: fixed
Found in version 28.0.50
Fixed in version 28.1
Done: Lars Ingebrigtsen <larsi <at> gnus.org>
Bug is archived. No further changes may be made.
Full log
Message #50 received at 40968 <at> debbugs.gnu.org (full text, mbox):
Pip Cet <pipcet <at> gmail.com> writes:
> Is the function signature relevant for anything but eldoc?
Besides the docstring, the manual documents it. The suggested form is
unusual and makes it harder to understand, IMHO.
>> apply is fundamental to Lisp, and has been defined like this for a
>> long time.
>
> I don't know about that. Anything but the two-argument form of apply
> strikes me as rather dialect-dependent, but I may be wrong.
If I understand correctly, you propose a three argument form:
(apply FUNCTION ARGUMENT &rest ARGUMENTS)
This is what I find unusual. It should really be either
(apply FUNCTION &rest ARGUMENTS)
or
(apply FUNCTION ARGUMENTS)
But since we already have the former, we are better to stick with
that.
Maybe there's a case to be made for a syntactic alternative to "&rest"
which disallows nil, which I guess is the issue here? But we can also
just signal an error in this case.
Racket does the latter, as one data point:
> (define foo (lambda () 1))
> (apply foo nil)
; nil: undefined;
; cannot reference an identifier before its definition
; in module: top-level
; [,bt for context]
BTW, I don't see a big difference conceptually between '&rest
ARGUMENTS' and 'ARGUMENTS'. The former is just syntactic sugar,
right?
>> See the definition of "The Universal S-Function apply" in
>> John McCarthy's paper: [1]
>>
>> apply[f;args] =eval[cons[f;appq[args]];NIL],
>
> I must admit I don't know how appq is defined.
My point is mainly that it has two arguments: f and args.
Best regards,
Stefan Kangas
This bug report was last modified 4 years and 238 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.