Artikel-Schlagworte: „define“

Scheme Kurs – Teil 6: set!

Samstag, 28. November 2009

Bis jetzt haben wir in Scheme nur mit Konstanten gearbeitet, die man einmal mit einem Wert belegen kann.
Mit set! kann man aber den Wert einer Variable ändern. Davor muss man die Variable aber wie eine Konstante mit define erstellen, dass heißt, wir haben bis jetzt auch schon mit Variablen gearbeitet, nur konnten wir deren Wert noch nicht ändern.

(define i 0)
(set! i 1)
(set! i (+ i 1))

Die Variable i hat nach der ersten Zeile den Wert 0, da sie mit define mit dem Wert 0 definiert wird.
Nach Zeile 2 ist der Wert von i 1, da wir es explizit mit set! festlegen.
In Zeile 3 nutzen brechnen wir den neuen Wert von i mit dem alten (oder bisherigem) Wert von i. i ist also nach dieser Zeile 2.

Das Ausrufezeichen ist eine Scheme Konvention. Man muss sich nicht daran halten, aber es ist extrem sinnvoll. Denn so kann jeder sofort erkennen dass eine Funktion eine oder mehrere Zuweisungen vornimmt.
Wenn man also eine Funktion schreibt, die einen Parameter verändert, dann sollte man an den Funktionsname ein Ausrufezeichen anhängen.

PDF Drucker    Sende Artikel als PDF an

Scheme Kurs – Teil 1: Grundlegendes

Mittwoch, 14. Oktober 2009

Scheme (1970) ist eine relativ alte Sprache, aber eine der neusten Abkömmlinge von Lisp. Und Lisp ist “die Mutter aller Programmiersprachen”!

Kombination oder Präfix-Notation

In Scheme ist alles in Klammern gefasst. Eine einfache Addition sieht wie folgt aus:

(+ zahl1 zahl2)

An der ersten Stelle in der Klammer steht der Operator oder die Funktion. Danach folgen die Parameter. Die Anzahl der Parameter kann variieren, so ist es bei den eingebauten Funktionen möglich, beliebig viele anzugeben (solang sonnvoll).

(* 2 2 2 2)

(Ist das gleiche wie 2 * 2 * 2 * 2 = 2^4.)

Diese Darstellungsform nennt man Präfixdarstellung.

Verschachtelte Kombinationen

Kombinationen können natürlich beliebig weit verschachtelt werden.

(* (+ 4 9) (- 12 3))

Konstanten und Funktionen

Konstanten und Funktionen können mit dem Schlüsselwort define definiert werden.

(define PI 3.14)
(define (square var) (* var var))

In der ersten Zeile erstellen wir eine Konstante PI mit dem Wert 3.14.
In der zweiten Zeile definieren wir eine Funktion (oder Prozedur) namens square mit dem Parameter var. Der Funktionskörper (oder Funktionsrumpf) multipliziert den Parameter var mit sich selbst und gibt das Ergebnis automatisch zurück.
Danach kann man die Konstanten wie eine Zahl benutzen und die Funktion wie einen Operator:

(square PI)

würde uns das Ergebnis 9,8596 zurückgeben bzw. in diesem Fall auf dem Bildschirm ausgeben.

Kommentare

Kommentare werden durch einen doppelten Strichpunkt eingeleitet.

;; Dies ist mein Kommentar
PDF Creator    Sende Artikel als PDF an