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.