5.6.1 Sintaxis de las funciones de sustitución

Es fácil hacer una función que sustituya una variable dentro de código de LilyPond. La forma general de estas funciones es

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

donde

argNn-ésimo argumento
typeN?predicado de tipo de Scheme para el que argN debe devolver #t.
…música…código de entrada normal de LilyPond, que utiliza $ (en los lugares en que sólo se permiten construcciones de LilyPond) o # (para usarlo como un valor de Scheme o un argumento de función musical o música dentro de listas de música) para referenciar argumentos (p.ej. ‘#arg1’).

Es necesaria la lista de predicados de tipo. Algunos de los predicados de tipo más comunes que se utilizan en las funciones musicales son:

boolean?
cheap-list?  (utilizar en lugar de ‘list?’ para un procesado más rápido)
ly:duration?
ly:music?
ly:pitch?
markup?
number?
pair?
string?
symbol?

Para ver una lista de los predicados de tipo disponibles, consulte Predicados de tipo predefinidos. También se permiten los predicados de tipo definidos por el usuario.

Véase también

Referencia de la notación: Predicados de tipo predefinidos.

Expansión de LilyPond: Funciones musicales.

Archivos instalados: lily/music-scheme.cc, scm/c++.scm, scm/lily.scm.


Referencia de la notación de GNU LilyPond v2.25.22 (development-branch).