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
     (parser location 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’).

Los argumentos parser y location son necesarios, y se utilizan en algunas situaciones avanzadas como se encuentra descrito en Sintaxis de las funciones musicales. Para las funciones de sustitución, tan sólo hemos de asegurarnos de incluirlos.

También 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: Sintaxis de las funciones musicales.

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


Otros idiomas: English, deutsch, français, italiano, 日本語.
Acerca de la selección automática del idioma.

LilyPond — Referencia de la notación v2.17.97 (rama de desarrollo).