5.6.1 Sintaxi de les funcions de substitució

És fàcil fer una funció que substitueixi una variable dins de codi del LilyPond. La forma general d’aquestes funcions és

funcion =
#(define-music-function
     (arg1 arg2 …)
     (type1? type2? …)
   #{
     …música…
   #})

donde

argNn-èssim argument
typeN?predicat de tipus de l’Scheme per al qual argN ha de retornar #t.
…música…codi d’entrada normal del LilyPond, que utilitza $ (en els llocs en els quals sols es permeten construccions del LilyPond) o # (per usar-ho com un valor de l’Scheme o un argument de funció musical o música dins de llistes de música) per referenciar arguments (per exemple ‘#arg1’).

Cal la llista de predicats de tipus. Alguns dels predicats de tipus més comuns que es fan servir en les funcions musicals són:

boolean?
cheap-list?  (utilitzar en lloc de ‘list?’ per processar-ho més ràpid)
ly:duration?
ly:music?
ly:pitch?
markup?
number?
pair?
string?
symbol?

Per veure una llista dels predicats de tipus disponibles consulteu Predicats de tipus predefinits. També es permeten els predicats de tipus definits per l’usuari.

Vegeu també

Referència de la notació: Predicats de tipus predefinits.

Expansió del LilyPond: Funcions musicals.

Fitxers instal·lats: lily/music-scheme.cc, scm/c++.scm, scm/lily.scm.


Referència de la notació del GNU LilyPond v2.25.22 (development-branch).