lilypond-user
[Top][All Lists]
Advanced

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

Re: Difference between # and $


From: David Kastrup
Subject: Re: Difference between # and $
Date: Sun, 30 Mar 2014 00:55:55 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4.50 (gnu/linux)

Urs Liska <address@hidden> writes:

> Hi,
>
> I have a hard time to understand the difference between # and $ in
> LilyPond code blocks within Scheme functions.

Same as elsewhere.  Please read

<URL:http://lilypond.org/doc/v2.19/Documentation/extending/lilypond-scheme-syntax>

> 2.2.1 of the Extending manual says:
> "Within LilyPond code blocks, use # to reference function arguments
> (eg., ‘#arg1’) or to start an inline Scheme expression containing
> function arguments (eg., ‘#(cons arg1 arg2)’). Where normal Scheme
> expressions using # don’t do the trick, you might need to revert to
> immediate Scheme expressions using $, for example as ‘$music’."
>
> This doesn't really help.
>
> 2.1. says:
> "... can deal with embedded Scheme expressions starting with $ and #."
>
> This is even less helpful.
>
> Please give me a meaningful explanation of what "immediate Scheme
> expressions" are and when and why you should use them.

Those starting with $.  You use them if you need either the copying
action (like when a music expression is used more than once), or when
the parser will not accept an expression starting with # because the
syntax rules will only apply to certain types, requiring the type to be
determined by the lexer already.

-- 
David Kastrup



reply via email to

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