5.6.1 Sintassi della funzione di sostituzione
Creare una funzione che sostituisca una variabile presente nel codice LilyPond è semplice. La forma generica di queste funzioni è:
funzione = #(define-music-function (arg1 arg2 …) (tipo1? tipo2? …) #{ …musica… #})
dove
argN
L’nesimo argomento.
tipoN?
Un tipo di predicato Scheme per il quale
argN
deve ritornare#t
.
…musica…
Il normale input LilyPond, usando
$
(nei punti in cui sono consentiti solo i costrutti LilyPond) o#
(per usarlo come un valore Scheme o come argomento di una funzione musicale o come musica all’interno di liste di musica) per riferirsi agli argomenti (es: ‘#arg1’).
La lista del tipo di predicati è obbligatoria. Alcuni dei tipi di predicati più comuni usati nelle funzioni musicali sono:
boolean? cheap-list? (usarlo al posto di ‘list?’ per un'elaborazione più veloce) ly:duration? ly:music? ly:pitch? markup? number? pair? string? symbol?
Un elenco dei tipi di predicati disponibili si trova in Tipi di predicati predefiniti. Sono consentiti anche tipi di predicati definiti dagli utenti.
Vedi anche
Guida alla notazione: Tipi di predicati predefiniti.
Estendere LilyPond: Music functions.
File installati: ‘lily/music-scheme.cc’, ‘scm/c++.scm’, ‘scm/lily.scm’.