Here are some proposed additions to LM B. Scheme tutorial These are things that I wished I knew when I was starting! I haven't made a patch because I want to get feedback from you guys first. Thanks - Mark
***(I'm leaving this paragraph as it is) LilyPond uses the Scheme programming language, both as part of the input syntax, and as internal mechanism to glue modules of the program together. This section is a very brief overview of entering data in Scheme. If you want to know more about Scheme, see http://www.schemers.org. ***new paragraph: LilyPond uses the GNU Guile implementation of Scheme, which is based on the Scheme "R5RS" standard. If you are learning Scheme to use with LilyPond, working with a different implementation (or referring to a different standard) is not recommended. Information on guile can be found at http://www.gnu.org/software/guile/. The "R5RS" Scheme standard is located at http://www.schemers.org/Documents/Standards/R5RS/. ***back to current: The most basic thing of a language is data: numbers, character strings, lists, etc. Here is a list of data types that are relevant to LilyPond input. ...jump a bit... In a music file, snippets of Scheme code are introduced with the hash mark #. So, the previous examples translated in LilyPond are ##t ##f #1 #-1.5 #"this is a string" #"this is a string" ***new paragraph and example: Multiple consecutive scheme expressions in a music file can be combined using the *begin* operator. This reduces the number of hash marks to one. However, within such a combined expression, LilyPond comments ("%" and "%{ %}") will produce errors. #(begin (define foo 0) (define bar 1) ) ***new sentence and example: Comments in Guile Scheme are entered as follows: ; this is a single-line comment #! this a (non-nestable) guile-style block comment !# ***back to current: For the rest of this section, we will assume that the data is entered in a music file, so we add #s everywhere. ************ ...and maybe at the end, some info regarding using the display function within a music file to emulate a guile "sandbox". See the thread at: http://lists.gnu.org/archive/html/lilypond-devel/2009-06/msg00436.html _______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel