Urs Liska <[email protected]> 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 _______________________________________________ lilypond-user mailing list [email protected] https://lists.gnu.org/mailman/listinfo/lilypond-user
