> Trying to understand LilyPond syntax based on how
> it actually processes input is not likely to make learning easy since a
> lot of complicated mechanisms work behind the scenes in order to make
> things look easy.

In my general experience, systems which try to be cleaver and are not
explicit about what they are doing tend to break in weird, unexpected
ways. Complex abstractions always leak. It is also a constant burden
on the user if they have to remember that some things are added
implicitly.

On 17 April 2018 at 17:43, David Kastrup <d...@gnu.org> wrote:
> Robert Hickman <robehick...@gmail.com> writes:
>
>>> That's not Lisp/Scheme syntax but LilyPond syntax.  There is a
>>> manual for it.  Several, in fact.
>>
>> I'm aware.
>>
>> \context {
>>   \Staff
>>   \omit TimeSignature
>> }
>>
>> If I'm understanding this correctly, this would be written something
>> like the following in a typical OO syntax:
>>
>> x =  Staff.clone();
>> x.omit(TimeSignature);
>
> And
>
> currentlayout.set (x.name, x);
>
> or something when the above appears in
>
> \layout { ... }
>
> Though \omit TimeSignature is short for the music expression
>
>     \override TimeSignature.stencil = ##f
>
> and is translated into the identical looking context modification by
> some hook function.  Trying to understand LilyPond syntax based on how
> it actually processes input is not likely to make learning easy since a
> lot of complicated mechanisms work behind the scenes in order to make
> things look easy.
>
> --
> David Kastrup

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

Reply via email to