GNU LilyPond – Extension des fonctionnalités: 2.3.2 Utilisation de fonctions musicales

### 2.3.2 Utilisation de fonctions musicales

En ce qui concerne la gestion des listes d’argments, les fonctions musicales ne diffèrent en rien des fonction Scheme – voir Utilisation de fonctions Scheme.

Une « fonction musicale » doit impérativement renvoyer une expression répondant au prédicat `ly:music?`. Ceci a pour conséquence d’autoriser l’appel à une fonction musicale en tant qu’argument de type `ly:music?` dans le cadre de l’appel à une autre fonction musicale.

Certaines restrictions s’appliqueront selon le contexte où une fonction musicale est utilisée, de telle sorte que l’analyse syntaxique soit sans ambiguïté.

- Dans une expression musicale de haut niveau, aucun postévénement n’est toléré.
- Lorsqu’une fonction musicale – contrairement à une fonction événementielle – renvoie une expression de type postévénement, LilyPond requiert son introduction par un indicateur de positionnement – à savoir `-`, `^` ou `_` – de telle sorte que le postévénement produit par l’appel à cette fonction s’intègre correctement dans l’expression environnante.
- En tant que partie d’un accord, l’expression musicale renvoyée doit être du type `rhythmic-event`, et plus particulièrement un `NoteEvent`.

Des fonctions « polymorphes » telles que `\tweak` peuvent s’appliquer aux postévénements, constituants d’accord et expressions de haut niveau.

#### LilyPond — Extension des fonctionnalités v2.24.4 (branche stable).