lilypond-devel
[Top][All Lists]
Advanced

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

Re: proposals for LM B. Scheme tutorial


From: Graham Percival
Subject: Re: proposals for LM B. Scheme tutorial
Date: Sat, 20 Jun 2009 13:22:37 -0700
User-agent: Mutt/1.5.18 (2008-05-17)

LGreatTM!

Cheers,
- Graham

On Sat, Jun 20, 2009 at 01:17:02PM -0700, Mark Polesky wrote:
> 
> 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
> address@hidden
> http://lists.gnu.org/mailman/listinfo/lilypond-devel




reply via email to

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