Scheme Syntax, FU Syntax

Nun einige Worte zur grundlegenden Syntax (der Sprachaufbau) der GIMP-Programmiersprache Scheme.

Befehle in Scheme werden vollständig geklammert, allerdings ist die Schreibweise gegenüber heutigen moderne Programmiersprachen wie Java und co. sehr gewöhnungsbedürftig.

Das grundlegende Schema sieht immer wie folgt aus:

(operator operand-1 operand-2 operand-3...operand-n)

Diese Tatsache ist in dieser Programmiersprache eigentlich auch schon die syntaktische Schlüsselerkenntnis.

Script FU Konsole, 1+1=2
Script FU Konsole, 1+1=2

Aber was bedeutet dies? Um diese Gesetzmäßigkeit zu beweisen sollte man sich einmal die Scheme-Konsole öffnen.

Dazu reicht ein Klick auf den Menüpunkt im Systemmenü: Filter/Script-Fu/Script-Fu Konsole

Ein kleines Dialogfenster öffnet sich dann. Wenn man sich nun an die eingangs gezeigte Syntax hält, kann man in der Konsole den folgenden Befehl formulieren (bitte die Leerzeichen beachten)…

(+ 8 12)

…und ihn mit Return bestätigen. Und tatsächlich, die Konsole antwortet sofort mit dem errechneten Wert der mathematischen Aufgabe: 8 + 12 = 20.

Das Gleiche funktioniert natürlich auch mit einer Multiplikation wie „4 * 4 = 16“, nur dass das Statement der Scheme-Syntax angepasst werden muss. Ich Scheme sieht das ganze so aus:

(* 4 4)

Wenn man diesen kurzen Befehl wieder in der Konsole eingibt, so erhält man (natürlich) das
korrekte Ergebnis des Interpreters.

16

Auch zusammengesetzte Ausdrücke sind durch das folgende Konstrukt möglich:

(* (+ 3 4) (/ 5 6))

Natürlich ist es nicht zwingend alles Statements innerhalb einer Klammer unterzubringen. Scheme ignoriert freundlicherweise auch eingegebene Returns wie das folgende Beispiel zeigt:

(*
(+ 3 4)
(/ 5 6)
)

In beiden Schreibweisen interpretiert die Konsole die Befehle aus mathematischer Sicht also wie folgt:

(3 + 4) * (5 / 6) = 5.83333

Ich denke anhand dieser kurzen Beispiele wird deutlich wie die Scheme-Syntax generell aufgebaut ist und wie sie funktioniert. Vermutlich wird für viele das Hauptproblem der Sprache darin liegen mit der typischen Schreibweise, der Operand steht vorne, zurechtzukommen.

Der Rest sind nur noch Befehle die man im Laufe der Zeit immer besser kennen wird und somit irgendwann auswendig kann. Daher möchte ich es jetzt mit der Einführung belassen. Ich glaube der Lerneffekt ist größer wenn der Leser ein paar praktische Beispiele bekommt – wie zum Beispiel das folgende.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.