LilyPond erweitern: 2.1.1 Syntax der musikalischen Funktionen

### 2.1.1 Syntax der musikalischen Funktionen

Die allgemeine Form von musikalischen Funktionen ist:

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

wobei

ArgN | das nte Argument
TypN? | ein Scheme-Typenprädikat (engl. type predicate), für welches `ArgN` `#t` ausgeben muss
...Noten... | ein musikalischer Ausdruck, optional in Scheme geschrieben, mit allem LilyPond-Code in Raute/geschweifte Klammer eingeschlossen ( `#{…#}` ). Innerhalb der LilyPond-Codeumgebungen wird `$` eingesetzt, um auf Funktionsargumente zu verweisen (etwa ‘`$Arg1`’), oder ein neuer Scheme-Ausdruck muss begonnen werden, der die Funktionsargumente enthält (etwa ‘`$(cons Arg1 Arg2)`’).

Eine Liste der möglichen Typenprädikate findet sich in Vordefinierte Typenprädikate. Durch den Benutzer definierte Typenprädikate sind auch erlaubt.

#### Siehe auch

Notationsreferenz: Vordefinierte Typenprädikate.

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

Andere Sprachen: English, español.

#### LilyPond – Extending