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

ArgNdas nte Argument
TypN?ein Scheme-Typenprädikat (engl. type predicate), für welches ArgN #t ausgeben muss. Einige dieser Prädikate werden durch den Parser gesondert erkannt, sodass die entsprechenden Werte als LilyPond-Syntx gelesen werden und nicht als Scheme-Syntax. Diese Prädikate sind gegenwärtig ly:music?, markup?, ly:pitch? und ly:duration?. Nicht alle Kombinationen sind erlaubt: man kann z. B. nicht eine Dauer nach den Noten suchen, denn Noten können optional mit einer Dauer enden. Wenn Sie wirklich einige dieser Elemente als Scheme- und nicht als LilyPond-Ausdruck einsetzen wollen, können Sie sie in einen Aufruf von ly:export einfügen.
...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.
About automatic language selection.

LilyPond – Extending