22.3.1 Sintaxis de las funciones de sustitución
Es fácil hacer una función que sustituya a una variable en código de LilyPond. La forma general de estas funciones es
function =
#(define-music-function
(arg1 arg2 …)
(tipo1? tipo2? …)
#{
…música…
#})
donde
argNEl n-ésimo argumento. tipoN?Un predicado_de_tipo de Scheme para el que argNdebe devolver#t.…música…Código normal de entrada de LilyPond, que usa ‘$’ (en aquellos lugares donde solo se admiten construcciones de LilyPond) o ‘#’ (para usarlo como un valor de Scheme o argumento de función musical o música dentro de listas de música) para referenciar argumentos (p.ej., ‘#arg1’).
La lista de predicados de tipo es obligatoria. Algunos de los predicados de tipo más comunes que se usan en las funciones musicales son:
- boolean?
- cheap-list? (usar en lugar de ‘list?’ para un procesamiento 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, see Predicados de tipo predefinidos. También se permiten predicados de tipo definidos por el usuario.
Véase también
Referencia de la notación: Predicados de tipo predefinidos.
Manual de extensión de LilyPond: Music functions.
Archivos instalados: lily/music-scheme.cc, scm/c++.scm, scm/lily.scm.