s n h m r u
i

Fachkonzept: Fallunterscheidungen

Die allgemeine Fallunterscheidung

Eine allgemeine Fallunterscheidung wird in Racket mit einem (cond ...)-Ausdruck umgesetzt. Dieser enthält beliebig viele Fälle, die jeweils aus einer Bedingung (ein Ausdruck mit booleschem Rückgabewert) und einem zugehörigen Rückgabewert bestehen. Wenn die Bedingung #t ergibt, wird der zugehörige Rückgabewert als Ergebnis der Funktion zurückgegeben.
Wenn nicht sichergestellt werden kann, dass mindestens eine der Bedingungen zu #t ausgewertet wird, muss ein else-Fall hinzugefügt werden.

(cond
    ([FunktionMitBoolscherRückgabe Operand-en] rückgabe-WennBedingung-#t)
    ([...] ...)
    ...
    (else rückgabe-WennAlleBedingungen-#f)
)

Faustregel: Die allgemeine Fallunterscheidung nutzen wir, wenn wir mehr als zwei Fälle haben, die wir unterscheiden müssen.

Die binäre Fallunterscheidung

Eine binäre Fallunterscheidung wird in Racket mit einem (if ...)-Ausdruck umgesetzt. Dieser enthält eine Bedingung (ein Ausdruck mit booleschem Rückgabewert) und zwei mögliche Rückgabewerte. Wenn die Bedingung #t ergibt, wird der erste Rückgabewert als Ergebnis der Funktion zurückgegeben, wenn die Bedingung #f ergibt, der zweite.

(if [FunktionMitBoolscherRückgabe Operand-en] rückgabe-#t rückgabe-#f)

Faustregel: Die binäre Fallunterscheidung nutzen wir, wenn wir genau zwei Fälle haben, die wir unterscheiden müssen.

Ausdruck mit booleschem Rückgabewert - genau genommen

Da Ausdrücke entweder zu Werten ausgewertet werde oder aber direkt Werte sind, kann man anstelle eines Ausdrucks mit booleschem Rückgabewert theoretisch auch direkt boolesche Werte nutzen. Für eine binäre Fallunterscheidung ergäben sich somit die Möglichkeiten:
(if #t rückgabe-#t rückgabe-#f)
(if #f rückgabe-#t rückgabe-#f)
Ersteres würde immer zu rückgabe-t auswerten, zweiteres immer zu rückgabe-f.

Suche

v
100.137.2.1.1.4 Fachkonzept: Fallunterscheidungen
Kopieren durch Anklicken

Rückmeldung geben