help-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Dropping "call" operator?


From: Kaz Kylheku
Subject: Re: Dropping "call" operator?
Date: Tue, 26 Mar 2024 10:15:19 -0700
User-agent: Roundcube Webmail/1.4.15

On 2024-03-26 06:52, Paul Smith wrote:
> There's nothing wrong with creating a variable name containing a comma
> and I don't anticipate making this illegal.

That's good to know. Since the delimiter in function calls is
whitespace, and commas don't come into play until after that in
the argument list, there is no technical ambiguity in allowing
it in the name; just perhaps cognitive confusion.

I mean, allowing it in the name when we have the imaginary
call-free syntax.

There is an ambiguity now in that a name with commas cannot
be invoked with call, I think; if we have $(a,b), we cannot
$(call a,b,c,d) to give it arguments.

However, I'm noticing that expansion preserves the semantic
boundaries, which is important. If we have $(x) that expands
to a,b, then we /can/ invoke $(call $(x),c,d). The delimiting
of argument material must be happening prior to expansions
(at least in the abstract).

If call is removed, $(a,b c,d) is unambiguous on its own,
without needing to be protected by $(x).

This also speaks to whitespace. Regardless of any other
current or proposed requirements, if $(x) expands to a b,
then $($(x) c,d) should treat $(x) as a unit, invoking a b
with arguments c,d. Under no circumstances would it be
treated as a with arguments b c, d.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]