Werner LEMBERG <w...@gnu.org> writes:

>>> Maybe we can add some code to prevent the redefinition of `Scheme
>>> constants' (in the broadest sense) like x, y, left, right, #t, #f?
>> 
>> I don't think we can really do this for Scheme, so we'd lose the
>> Scheme/LilyPond equivalence of variables.
>
> Hmm, so what about a warning:
>
>   The variable `foo' is hiding a Scheme symbol with the same name.
>
> This could be even hard-coded into the parser since the number of such
> symbols is rather small.

Does not seem to change the Scheme/LilyPond difference.  The problem is
not really as much the "hide a Scheme symbol with the same name" case
inside of LilyPond (unless you load other people's Scheme code
afterwards) but rather Scheme's "replaces a Scheme symbol's value with
something else" behavior.

I really don't think we are doing people favors with trying to be as
tricky as possible about the situation.  The current situation is less
that pretty, but at least it is not a trap.

-- 
David Kastrup

_______________________________________________
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel

Reply via email to