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
argN | n-é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’.