[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Operators '=' ‘:=’ ‘::=’ in manual
From: |
Paul Smith |
Subject: |
Re: Operators '=' ‘:=’ ‘::=’ in manual |
Date: |
Fri, 11 Dec 2020 13:04:11 -0500 |
User-agent: |
Evolution 3.36.4-0ubuntu1 |
On Thu, 2020-12-10 at 18:40 +0000, DUDZIAK Krzysztof wrote:
> I don't actually dare to use terms "recursive variable" and "simple
> variable" as myself didn't find such in manual. Terms which I found
> read variable expanded recursively variable expanded simply
I still believe these are poor terms.
All variables are "recursively expanded" when they are expanded: that
is, all references to all variables inside the value are expanded, and
all references to all variables inside any of those values are
expanded, etc. recursively. Expansion happens identically in all
cases.
The difference is not in HOW they are expanded, but rather WHEN they
are expanded.
The term probably was used to refer to one specific difference which is
that recursively expanded variables don't allow you to have self-
referencing; you can't do this:
FOO = bar $(FOO)
because you'd get "infinite recursion". That is certainly one
legitimate difference but I don't think it deserves to drive the naming
. But as I say, these terms have been in the docs since forever so
changing them would need to be done carefully.