Referència de la notació del GNU LilyPond: 5.6.1 Sintaxi de les funcions de substitució

### 5.6.1 Sintaxi de les funcions de substitució

És fàcil fer una funció que substitueixi una variable dins de codi del LilyPond. La forma general d’aquestes funcions és

>     funcion =
>     #(define-music-function
>          (arg1 arg2 …)
>          (type1? type2? …)
>        #{
>          …música…
>        #})

donde

`argN` | n-èssim argument
`typeN?` | predicat de tipus de l’Scheme per al qual `argN` ha de retornar `#t`.
`…música…` | codi d’entrada normal del LilyPond, que utilitza `$` (en els llocs en els quals sols es permeten construccions del LilyPond) o `#` (per usar-ho com un valor de l’Scheme o un argument de funció musical o música dins de llistes de música) per referenciar arguments (per exemple ‘`#arg1`’).

Cal la llista de predicats de tipus. Alguns dels predicats de tipus més comuns que es fan servir en les funcions musicals són:

>     boolean?
>     cheap-list?  (utilitzar en lloc de ‘list?’ per processar-ho més ràpid)
>     ly:duration?
>     ly:music?
>     ly:pitch?
>     markup?
>     number?
>     pair?
>     string?
>     symbol?

Per veure una llista dels predicats de tipus disponibles consulteu Predicats de tipus predefinits. També es permeten els predicats de tipus definits per l’usuari.

#### Vegeu també

Referència de la notació: Predicats de tipus predefinits.

Expansió del LilyPond: Funcions musicals.

Fitxers instal·lats: ‘`lily/music-scheme.cc`’, ‘`scm/c++.scm`’, ‘`scm/lily.scm`’.

#### LilyPond — Referència de la notació v2.24.4 (branca estable).