LilyPond Benutzerhandbuch: 5.6.1 Syntax der Ersetzungsfunktion

### 5.6.1 Syntax der Ersetzungsfunktion

Es ist einfach eine Funktion zu erstellen, die eine Variable in LilyPond-Code umwandelt. Die generelle Form dieser Funktionen ist:

>     Funktion =
>     #(define-music-function
>          (parser location Arg1 Arg2 …)
>          (Typ1? Typ2? …)
>        #{
>          …Noten…
>        #})

wobei

`ArgN` | ntes Argument
`TypN?` | ein Scheme Typenprädikat, für das `ArgN` den Wert `#t` ausgibt.
`…Noten…` | normale LilyPond-Eingab, wobei `$` benutzt wird, um Argumente zu referenzieren (etwa ‘`$Arg1`’).

Die `parser` und `location`-Argumente sind zwingend und werden in einigen fortgeschrittenen Situationen benutzt, wie sie im „Erweitern“-Handbuch beschrieben werden (siehe Musikalische Funktionen). In Ersetzungsfunktionen gehen Sie einfach sicher, dass sie die beiden Wörter auch mit aufnehmen.

Die Liste der Typenprädikate ist auch notwendig. Einige der häufigsten Typenprädikate, die in musikalischen Funktionen benutzt werden, sind:

>     boolean?
>     cheap-list?  (benutze anstelle von ‚list?‘ für schnelleres Kompilieren)
>     ly:music?
>     markup?
>     number?
>     pair?
>     string?
>     symbol?

Eine Liste aller Typprädikate findet sich unter @ref{Vordefinierte Typprädikate}. Eigene Typprädikate sind auch erlaubt.

#### Siehe auch

Notationsreferenz: @ref{Vordefinierte Typprädikate}.

Erweitern: Musikalische Funktionen.

Installierte Dateien: ‘`lily/music-scheme.cc`’, ‘`scm/c++.scm`’, ‘`scm/lily.scm`’.

Andere Sprachen: English, español, 日本語.

#### LilyPond – Notationsreferenz