B.2.2 Uso de las funciones de Scheme
Las funciones de Scheme se pueden llamar casi desde cualquier lugar en
que puede escribirse una expresión de Scheme que comience con la
almohadilla #
. Llamamos a una función de Scheme
escribiendo su nombre precedido de la barra invertida \
, y
seguido por sus argumentos. Una vez que un argumento opcional no
corresponde a ningún argumento, LilyPond se salta este argumento y
todos los que le siguen, sustituyéndolos por su valor por omisión
especificado, y ‘recupera’ el argumento que no correspondía al lugar
del siguiente argumento obligatorio. Dado que el argumento recuperado
necesita ir a algún lugar, los argumentos opcionales no se consideran
realmente opcionales a no ser que vayan seguidos de un argumento
obligatorio.
Existe una excepción: si escribimos \default
en el lugar de un
argumento opcional, este argumento y todos los argumentos opcionales
que le siguen se saltan y se sustituyen por sus valores
predeterminados. Esto funciona incluso si no sigue ningún argumento
obligatorio porque \default
no necesita recuperarse. Las
instrucciones mark
y key
hacen uso de este truco para
ofrecer su comportamiento predeterminado cuando van seguidas solamente
por \default
.
Aparte de los lugares en que se requiere un valor de Scheme hay
ciertos sitios en que se aceptan expresiones de almohadilla #
y
se evalúan por sus efectos secundarios, pero por lo demás se ignoran.
Son, mayormente, los lugares en que también sería aceptable colocar
una asignación.
Dado que no es buena idea devolver valores que puedan malinterpretarse en algún contexto, debería usar funciones de Scheme normales solo para los casos en que siempre se devuelve un valor útil, y usar funciones de Scheme vacías (véase la sección Funciones de Scheme vacías) en caso contrario.
Otros idiomas: English, deutsch, français.
Acerca de la selección automática del idioma.