2.2.2 Utilisation de fonctions Scheme
Vous pouvez appeler une fonction Scheme pratiquement partout où une
expression Scheme derrière un #
peut prendre place. Vous appelez
une fonction Scheme en faisant précéder son nom d’un \
, et en le
faisant suivre de ses arguments. Lorsqu’un prédicat d’argument
optionnel ne correspond pas à un argument, LilyPond l’ignore ainsi que
tous les arguments optionnels qui suivent, les remplaçant par leur
valeur par défaut, et « sauvegarde » en tant que prochain argument
obligatoire l’argument qui ne correspondait pas. Dans la mesure où
l’argument sauvegardé doit servir, les argument optionnels ne sont en
fait pas considérés comme optionnels, sauf à être suivis d’un argument
obligatoire.
Une exception cependant à cette règle : le fait de donner un
\default
en tant qu’argument optionnel aura pour résultat que cet
argument et tous les autres arguments optionnels qui suivent seront
ignorés et remplacés par leur valeur par défaut. Il en va de même
lorsqu’aucun argument obligatoire ne suit, du fait que \default
ne requiert pas de sauvegarde. C’est d’ailleurs ainsi que fonctionnent
les commandes mark
et key
, qui retrouvent leur
comportement par défaut lorsque vous les faites suivre d’un
\default
.
En plus de là où une expression Scheme est requise, il y a quelques
endroits où des expressions #
sont acceptées et évaluées
uniquement pour leurs effets annexes. Il s’agit, dans la plupart des
cas, d’endroits où une affectation serait tout à fait envisageable.
Dans la mesure où il n’est pas bon de renvoyer une valeur qui pourrait être mal interprétée dans certains contextes, nous vous enjoignons à utiliser des fonctions Scheme normales uniquement dans les cas où vous renvoyez toujours une valeur utile, et une fonction fantôme – voir Fonctions Scheme fantômes – dans le cas contraire.
Autres langues : English, deutsch, español.
About automatic language selection.