[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#40968: 28.0.50; (apply nil)
From: |
Stefan Kangas |
Subject: |
bug#40968: 28.0.50; (apply nil) |
Date: |
Wed, 6 May 2020 11:28:49 -0400 |
Pip Cet <pipcet@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
- bug#40968: 28.0.50; (apply nil), Stefan Kangas, 2020/05/05
- bug#40968: 28.0.50; (apply nil), Pip Cet, 2020/05/06
- bug#40968: 28.0.50; (apply nil), Stefan Kangas, 2020/05/06
- bug#40968: 28.0.50; (apply nil), Pip Cet, 2020/05/06
- bug#40968: 28.0.50; (apply nil), Stefan Kangas, 2020/05/06
- bug#40968: 28.0.50; (apply nil), Pip Cet, 2020/05/06
- bug#40968: 28.0.50; (apply nil),
Stefan Kangas <=
- bug#40968: 28.0.50; (apply nil), Pip Cet, 2020/05/06
- bug#40968: 28.0.50; (apply nil), Drew Adams, 2020/05/06
- bug#40968: 28.0.50; (apply nil), Eli Zaretskii, 2020/05/06
- bug#40968: 28.0.50; (apply nil), Pip Cet, 2020/05/06
- bug#40968: 28.0.50; (apply nil), Eli Zaretskii, 2020/05/06
- bug#40968: 28.0.50; (apply nil), Drew Adams, 2020/05/06
- bug#40968: 28.0.50; (apply nil), Noam Postavsky, 2020/05/06
- bug#40968: 28.0.50; (apply nil), Drew Adams, 2020/05/06
- bug#40968: 28.0.50; (apply nil), Pip Cet, 2020/05/06
- bug#40968: 28.0.50; (apply nil), Drew Adams, 2020/05/06