A.2.2 Variables del LilyPond (Extender LilyPond)

#### A.2.2 Variables del LilyPond

Les variables del LilyPond s’emmagatzemen internament en la forma de variables de l’Scheme. Així,

    dotze = 12

equival a

    #(define dotze 12)

Això significa que les variables del LilyPond estan disponibles per al seu ús dins d’expressions de l’Scheme. Per exemple, podríem usar

    vintiQuatre = (* 2 dotze)

cosa que faria que el nombre 24 s’emmagatzemés dins de la variable `vintiQuatre` del LilyPond (i de l’Scheme).

El llenguatge Scheme permet la modificació d’expressions complexes in situ i el LilyPond fa ús d’aquesta ‘modificació in situ’ en fer servir funcions musicals. Però quan les expressions musicals s’emmagatzemen dins de variables en lloc de ser intruïdes directament, el que habitualment s’espera quan es passen funcions musicals seria que el valor original quedés intacte. Així doncs, quan es fa referència a una variable musical amb la barra invertida (com ara `\vintiQuatre`), el LilyPond crea una còpia del valor musical d’aquesta variable per utilitzar-la dins de l’expressió musical que l’envolta, enlloc d’usar el valor de la variable directament.

Per això, les expressions musicals de l’Scheme escrites amb la sintaxi de coixinet `#` s’haurien d’utilitzar per a qualsevol material creat ‘partint de zero’ (o que s’hagi copiat explícitament) enlloc d’utilitzar-se per fer referència a música directament.

#### Vegeu també

Manual de extensió: Sintaxi de l’Scheme del LilyPond.

#### Extender LilyPond v2.26.0 (stable-branch).

- Appendix A Tutorial de l’Scheme
  - A.1 Introducció a l’Scheme
    - A.1.1 Banc de sorra de l’Scheme
    - A.1.2 Variables de l’Scheme
    - A.1.3 Tipus de dades simples de l’Scheme
    - A.1.4 Tipus de dades compostes de l’Scheme
      - Parelles
      - Llistes
      - Llistes associatives (llistes-A)
      - Taules de hash
    - A.1.5 Càlculs a l’Scheme
    - A.1.6 Procediments de l’Scheme
      - Definició de procediments
      - Predicats
      - Valors de retorn
    - A.1.7 Condicionals de l’Scheme
      - if
      - cond
  - A.2 Scheme dins del LilyPond
    - A.2.1 Sintaxi de l’Scheme del LilyPond
    - A.2.2 Variables del LilyPond
    - A.2.3 Variables d’entrada i l’Scheme
    - A.2.4 Importació de l’Scheme dins del LilyPond
    - A.2.5 Propietats dels objectes
    - A.2.6 Variables del LilyPond compostes
      - Desplaçaments
      - Fraccions
      - Dimensions
      - Llistes-A de propietats
      - Cadenes de llistes-A
    - A.2.7 Representació interna de la música
  - A.3 Construcció de funcions complicades
    - A.3.1 Presentació de les expressions musicals
    - A.3.2 Propietats musicals
    - A.3.3 Duplicació una nota amb lligadures (exemple)
    - A.3.4 Afegir articulacions a les notes (exemple)
- B Interfícies per a programadors
  - B.1 Blocs de codi del LilyPond
  - B.2 Funcions de l’Scheme
    - B.2.1 Definició de funcions de l’Scheme
    - B.2.2 Ús de les funcions de l’Scheme
    - B.2.3 Funcions de l’Scheme buides
  - B.3 Funcions musicals
    - B.3.1 Definicions de funcions musicals
    - B.3.2 Ús de les funcions musicals
    - B.3.3 Funcions de substitució senzilles
    - B.3.4 Funcions de substitució intermèdies
    - B.3.5 Matemàtiques dins de les funcions
    - B.3.6 Funcions sense arguments
    - B.3.7 Funcions musicals buides
  - B.4 Funcions d’esdeveniments
  - B.5 Funcions de marcatge
    - B.5.1 Construcció d’elements de marcatge a l’Scheme
    - B.5.2 Com funcionen internament els elements de marcatge
    - B.5.3 Definició d’una ordre nova de marcatge
      - Sintaxi de la definició d’ordre de marcatge
      - Quant a les propietats
      - Un exemple complet
      - Adaptació d’ordres incorporades
    - B.5.4 Definició de noves ordres de llista de marcatge
  - B.6 Contextos per a programadors
    - B.6.1 Avaluació de contextos
    - B.6.2 Execució d’una funció sobre tots els objectes de la presentació
  - B.7 Funcions de callback
  - B.8 Ajustaments difícils
- C Interfícies de l’Scheme del LilyPond
- Appendix D GNU Free Documentation License
- Appendix E Índex del LilyPond