|
From: | John Cowan |
Subject: | Re: Fwd: Comments on draft #3 |
Date: | Sun, 3 May 2020 13:05:42 -0400 |
On Sun, May 03, 2020 at 12:55:40PM -0400, John Cowan wrote:
> This is the first of two patches that allow macros to be expanded when they
> appear in operand position, so that if pi is a macro for 3.14159, then (+ 5
> pi) will be expanded to (+ 5 3.14159). This allows macros that work like
> procedures in the sense that they can be passed as operands.
>
> This patch works for er-macros and ir-macros. Basically if a low-level
> macro is found in operand position, rather than an a syntax error, whatever
> the macro expands into is substituted.
To me it seems this introduces an ambiguity between (foo) and foo.
What if foo is a macro that expands to a procedure? Then
(apply foo '()) would then be identical to (apply (foo) '()),
unless I'm misunderstanding something. I would find that highly
undesirable.
Cheers,
Peter
[Prev in Thread] | Current Thread | [Next in Thread] |