Ok heute gibt es mal einen rein praktischen Artikel. Ich habe eine kleine Funktion geschrieben, die den Flächeninhalt eines Rechteckes aufgrund von 2 Koordinaten berechnet. Wir haben dabei einen x und einen y Wert für den Startpunkt (obere Linke Ecke) und einen x und y Wert für den Endpunkt (untere Rechte Ecke) des Rechteckes.
Das heißt unsere Funktion bekommt 4 Parameter in Form von Zahlen. Aber ich will nicht länger um den heißen Brei reden. Darum hier die Funktion:
1 2 3 4 5 | ;;example: (rect-area -1 4 2 0) = 12 (define (rect-area x1 y1 x2 y2) (* (- (max x2 x1) (min x2 x1)) (- (max y2 y1) (min y2 y1))) ) |
Ok ich habe hier zwei neue Befehle verwendet. min und max. Diese dient dazu, bei einem Zahlenpaar die größer bzw. kleiner zu erkenne. In der Funktion oben sorgen ich damit zum Beispiel dafür, dass immer die kleiner Zahl von der größeren abgezogen wird. Damit erhalt ich zwei Seitenlängen. Diese werden dann miteinander multipliziert und ergeben den Flächeninhalt.