1.1.3 Einfache Scheme-Datentypen (LilyPond erweitern)

#### 1.1.3 Einfache Scheme-Datentypen

Das Grundlegendste an einer Sprache sind Daten: Zahlen, Zeichen, Zeichenketten, Listen usw. Hier ist eine Liste der Datentypen, die für LilyPond-Eingabedateien relevant sind.

Boolesche Variablen

  Werte einer Booleschen Variable sind Wahr oder Falsch. Die Scheme-Entsprechung für Wahr ist `#t` und für Falsch `#f`.

Zahlen

  Zahlen werden wie üblich eingegeben, `1` ist die (ganze) Zahl Eins, während `-1.5` eine Gleitkommazahl (also eine nicht-ganze) ist.

Zeichenketten

  Zeichenketten werden in doppelte Anführungszeichen gesetzt:

      "Das ist eine Zeichenkette"

  Zeichenketten können über mehrere Zeilen reichen:

      "Das
      ist
      eine Zeichenkette"

  und die Zeichen für eine neue Zeile am Ende jeder Zeile werden auch in die Zeichenkette aufgenommen.

  Zeichen für eine neue Zeile können auch hinzugefügt werden, indem man `\n` in die Zeichenkette aufnimmt.

      "das\nist eine\nmehrzeilige Zeichenkette"

  Anführungszeichen und neue Zeilen können auch mit sogenannten Fluchtsequenzen eingefügt werden. Die Zeichenkette `a sagt "b"` wird wie folgt eingegeben:

      "a sagt \"b\""

Weitere zusätzliche Scheme-Datentypen, die hier nicht besprochen wurden, finden sich in einer vollständigen Liste der Scheme-Datentypen in der Guile-Referenzanleitung: http://www.gnu.org/software/guile/manual/html_node/Simple-Data-Types.html.

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

- 1 Scheme-Tutorium
  - 1.1 Einleitung in Scheme
    - 1.1.1 Scheme-Sandkasten
    - 1.1.2 Scheme-Variablen
    - 1.1.3 Einfache Scheme-Datentypen
    - 1.1.4 Zusammengesetzte Scheme-Datentypen
    - 1.1.5 Berechnungen in Scheme
    - 1.1.6 Scheme-Prozeduren
    - 1.1.7 Scheme-Konditionale
  - 1.2 Scheme in LilyPond
    - 1.2.1 LilyPond Scheme-Syntax
    - 1.2.2 LilyPond-Variablen
    - 1.2.3 Eingabe-Variablen und Scheme
    - 1.2.4 Scheme in LilyPond importieren
    - 1.2.5 Objekteigenschaften
    - 1.2.6 Zusammengesetzte LilyPond-Variablen
    - 1.2.7 Interne musikalische Repräsentation
  - 1.3 Komplizierte Funktionen erstellen
    - 1.3.1 Musikalische Funktionen darstellen
    - 1.3.2 Eigenschaften von Musikobjekten
    - 1.3.3 Verdoppelung einer Note mit Bindebögen (Beispiel)
    - 1.3.4 Artikulationszeichen zu Noten hinzufügen (Beispiel)
- 2 Schnittstellen für Programmierer
  - 2.1 LilyPond-Codeabschnitte
  - 2.2 Scheme-Funktionen
    - 2.2.1 Definition von Scheme-Funktionen
    - 2.2.2 Benutzung von Scheme-Funktionen
    - 2.2.3 Leere Scheme-Funktionen
  - 2.3 Musikalische Funktionen
    - 2.3.1 Definition der musikalischen Funktionen
    - 2.3.2 Benutzung von musikalischen Funktionen
    - 2.3.3 Einfache Ersetzungsfunktionen
    - 2.3.4 Mittlere Ersetzungsfunktionen
    - 2.3.5 Mathematik in Funktionen
    - 2.3.6 Funktionen ohne Argumente
    - 2.3.7 Leere musikalische Funktionen
  - 2.4 Ereignisfunktionen
  - 2.5 Textbeschriftungsfunktionen
    - 2.5.1 Beschriftungskonstruktionen in Scheme
    - 2.5.2 Wie Beschriftungen intern funktionieren
    - 2.5.3 Neue Definitionen von Beschriftungsbefehlen
      - Syntax der Definition von Textbeschriftungsbefehlen
      - Über Eigenschaften
      - Ein vollständiges Bespiel
      - Eingebaute Befehle anpassen
    - 2.5.4 Neue Definitionen von Beschriftungslistenbefehlen
  - 2.6 Kontexte für Programmierer
    - 2.6.1 Kontextauswertung
    - 2.6.2 Eine Funktion auf alle Layout-Objekte anwenden
  - 2.7 Callback-Funktionen
  - 2.8 Scheme-Code innerhalb LilyPonds
  - 2.9 Schwierige Korrekturen
- 3 LilyPond Scheme-Schnittstellen
- Appendix A GNU Free Documentation License
- Appendix B Register