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’.


LilyPond — Guida alla Notazione v2.23.82 (ramo di sviluppo).