Funktionsdefinition Schritt 5: Funktionskörper
Funktionsdefinition Schritt 5: Body der Funktion
Wir haben nun also bereits eine Funktionsdefinition geschrieben, die zwei natürliche Zahlen übergeben bekommt, und diese in zwei Parametern beispielsweise in laenge und breite speichert.(Dein Code kann natürlich auch leicht anders aussehen)
;Berechnet den flaecheninhalt eines Quaders in mm
(: flaecheninhalt (natural natural -> natural))
(check-expect (flaecheninhalt 125 20) 2500)
(check-expect (flaecheninhalt 125 0) 0)
(define flaecheninhalt
(lambda (laenge breite)
...))
Was uns noch fehlt, sind die tatsächlichen Rückgabedaten.
Oben sind diese bisher mit dem Platzhalter "..." dargestellt.
Im Rahmen der Lambda-Ausdrücke haben wir bereits unbewusst die "..." durch einen Funktionskörper ausgetauscht. Nämlich indem wir innerhalb des Lambda-Ausdrucks einen weiteren Ausdruck geschrieben haben, welcher unsere Übergabebedaten verwendet hat. Zum Beispiel bei den folgenden zwei Lambda-Ausdrücken:
;ohne Funktionskörper
(lambda (x) ...)
(lambda (x y) ...)
;mit Funktionskörper
(lambda (x) (+ x x))
(lambda (x y) (* (+ x y) y))
Bzw. wie wir es grafisch dargestellt hatten:

Aufgabe 1. Funktionskörper der Flächeninhaltsberechnung
1.1 In unserer Funktion möchten wir den flaecheninhalt berechnen und zurückgeben. Wir wissen: $\text{Flächeninhalt} = \text{Länge} * \text{Breite}$.
Schreibe im Definitionsfenster in dein Gerüst einen geeignete Ausdruck, der dir den Flächeninhalt berechnet.
Und damit sind wir fertig mit unsere Funktionsdefinition zur Flächeninhaltsberechnung!
1.2 Drücke nun oben rechts in DrRacket auf den grünen "Start-Knopf" über dem Definitionsfenster. Anschließend kannst du die Funktion verwenden.
1.3 Teste deine Funktion in der REPL mit den folgenden Daten aus:
> (flaecheninhalt 12 20)
> (flaecheninhalt 0 20)
> (flaecheninhalt -15 30)
> (flaecheninhalt 0 -30)
1.4 Verständnisfrage
Die zwei untenstehenden Funktionsaufrufe liefern dir die gleichen Rückgabedaten. Dennoch können wir die Funktionen nicht gleichwertig verwenden.Worin unterscheiden sich die beiden Funktionen * und flaecheninhalt?
> (* 12 20)
> (flaecheninhalt 12 20)
Übungsaufgaben
Aufgabe 2. Entwerfen geeigneter Funktionskörper
Schreibe in dein Definitionsfenster den Funktionskörper in dein Gerüst folgender Funktionen:
(Aufgabe 6 im vorangegangenen Kapitel).
Probiere die Funktionen anschließend durch Aufrufe aus der REPL auf.
- Die Funktion quadrieren
- Die Funktion korrekteAnzahlBuchstaben?
- Der Funktion die den Durchschnitt zweier ganzer Zahlen berechnen soll.
- Der Funktion die bestimmt, ob ein Text eine gerade Anzahl an Buchstaben hat.