[icon]

GNU LilyPond

-- --

What is LilyPond
Home
Examples
Templates
Download
GNU/Linux binaries
Windows binaries
Source code
Documentation
Tutorial
Manual
Glossary
Index

Support
Mailing lists
Search
WikiWiki

External sites
lilypond.org/stable
lilypond.org/development
savannah.gnu.org
ftp.lilypond.org
Mutopia
Other music online

Direct Scheme

LilyPond internally uses GUILE, a Scheme-interpreter. Scheme is a language from the LISP family. You can learn more about Scheme at http://www.scheme.org. It is used to represent data throughout the whole program. The hash-sign (#) accesses GUILE directly: The code following the hash-sign is evaluated as Scheme. The boolean value true is #t in Scheme, so for LilyPond true looks like ##t.

LilyPond contains a Scheme interpreter (the GUILE library) for internal use. In some places, Scheme expressions also form valid syntax: Wherever it is allowed,

     #scheme
     

evaluates the specified Scheme code. Example:

     \property Staff.TestObject \override #'foobar = #(+ 1 2)
     

\override expects two Scheme expressions. The first one is a symbol (foobar), the second one an integer (namely, 3).

In-line Scheme may be used at the top level. In this case the result is discarded.

Scheme is a full-blown programming language, and a full discussion is outside the scope of this document. Interested readers are referred to the website http://www.schemers.org/ for more information on Scheme.

Go back to index of LilyPond.

Please send GNU LilyPond questions and comments to lilypond-user@gnu.org.

Please send comments on these web pages to (address unknown)

Copyright (c) 1997--2002 Han-Wen Nienhuys and Jan Nieuwenhuizen.

Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.


This page was built from LilyPond-1.7.14 (development-branch) by

Buchan Milne <(address unknown)>, Thu Mar 6 21:11:35 2003 CET.