Scheme: Unterschied zwischen den Versionen

Aus Fachschaft_Informatik
Zur Navigation springen Zur Suche springen
Zeile 17: Zeile 17:
(closure )
(closure )
:
:
(quote <i>operand</i>)<br>
'<i>operand</i>
:Gibt <i>operand</i> zurück (ohne diesen Auszuwerten).


=== bedingte Auswertung ===
=== bedingte Auswertung ===

Version vom 9. Februar 2008, 18:31 Uhr

Auflistung der Scheme-Funktionen

Scheme ist eine funktionale Programmiersprache die im Modul SE3 verwendet wird.

grundlegende Funktionen

(lambda parameter funktion)

Der Rückgabewert dieser Funktion ist eine Funktion die alle in der Liste parameter stehenden Parameter nimmt und mit den Funktionsaufrufen die in funktion stehen auswertet.

(define name wert)

Weist der Variable name den wert wert zu. Dieser Definition gilt nur in dem Block in dem sie steht und in allen unterblöcken (ausser wenn sie verschattet wird).

(let (zuweisungen) s-expression)
(let* (zuweisungen) s-expression)

Die in zuweisungen definierten Variablen können im Rumpf s-expression genutzt werden. Danach sind sie weg.
Bei let kann man für die Definition einer Variable nicht auf die anderen soeben definierten Variablen zugreifen. Mit let* geht das.

(closure )

(quote operand)
'operand

Gibt operand zurück (ohne diesen Auszuwerten).

bedingte Auswertung

(if bedingung dann)
(if bedingung dann sonst)

Wenn der Aufruf von bedingung wahr zurückgibt ist der eigene Rückgabewert die Auswertung von dann, andernfalls die Auswertung von sonst (sofern vorhanden).

(cond (bedingung1 ausdruck1) (bedingung2 ausdruck2) ... (bedingungn ausdruckn)) (cond (bedingung1 ausdruck1) (bedingung2 ausdruck2) ... (bedingungn ausdruckn) (else ausdrucksonst))

Der eigene Rückgabewert ist die Auswertung des ersten Ausdrucks dessen Bedingung zu wahr ausgewertet wird. Wird keine zu Wahr ausgewertet ist es die Auswertung von ausdrucksonst (sofern vorhanden).

logische Operatoren

(or (ausdruck1) (ausdruck1) ... (ausdruckn))

Der Rückgabewert ist wahr, wenn zumindest ein Ausdruck zu wahr ausgewertet wird. Dabei wird mit Lazy Evaluation von links nach rechts ausgewertet.

(and (ausdruck1) (ausdruck1) ... (ausdruckn))

Der Rückgabewert ist falsch, wenn zumindest ein Ausdruck zu falsch ausgewertet wird. Dabei wird mit Lazy Evaluation von links nach rechts ausgewertet.

Vergleichsoperatoren

(= operand1 operand2 ... operandn)

Ist wahr wenn alle Operanden gleich sind.

(< operand1 operand2 ... operandn)

Ist wahr wenn von zwei jeweils nebeneinander stehenden Operanden der linke kleiner ist als der rechte.

(> operand1 operand2 ... operandn)

Ist wahr wenn von zwei jeweils nebeneinander stehenden Operanden der linke grösser ist als der rechte.

numerische Funktionen

(+ operand1 operand2 ... operandn)

Gibt die Summe der Operanden zurück.

(* operand1 operand2 ... operandn)

Gibt das Produkt der Operanden zurück.

(/ operand1 operand2)

Gibt den Quotienten der Operanden zurück.

(- operand1 operand2)

Gibt die Differenz der Operanden zurück.

(sqrt operand)

Gibt die Quadratwurzel von operand zurück.

(sin operand)

Gibt deb Sinus von operand zurück.

(exp basis exponent)

Gibt basis hoch exponent zurück.

(modulo operand1 operand2)

Gibt den Rest bei ganzzahliger Division zurück.

Meta-Funktionen

(display "text")

Schreibt text auf die Standardausgabe.

(error "text")

Schreibt text als Fehlermeldung und malt einen Bug dazu.

Listen-Funktionen

(car liste)

Gibt den Kopf der liste zurück.

(cdr liste)

Gibt den Rumpf der liste zurück.

Typprädikate

(symbol operand)

Wahr, wenn operand ein Symbol ist.