; Aufgabe 2, Unterpunkt 1
;(/ (+ 9 (* 18 8) 17) (+ 6 (* 5 (- 4 (+ 3 (* 2 1))))))
; Aufgabe 2, Unterpunkt 2
;(define (f x y z)
; (* y (+ y z 13) (- z 5 x)))
; Aufgabe 2, Unterpunkt 3
;(define (min x y)
; (cond ((> x y) y)
; ((<= x y) x)))
;(min 10 23)
;(min 5 2)
; Aufgabe 3
; Erster Teil:
; "if" ist eine special-form weil es vom Interpreter in einer bestimmten Reihenfolge
; abgearbeit wird (applicative order). Zuerst wird die Bedingung überprüft und danach
; entweder der erste oder zweite Ausdruck (je nach Rückgabewert der Bedingung) ausgeführt.
;
; Wieso kann das normale "if" nicht durch ein selbstdefiniertes "if" auf der Basis von
; "cond" ersetzt werden?
; Sobald "if" ausgeführt wird, wird die Bedingung ("kondition") ausgeführt, danach
; "then-clause" und "else-clause". Genau hier fängt der unterschied schon an, denn die
; Rückgabewerte der Parameter von "unserem if" werden an "if" übergeben.
(define (if kond then-c else-c)
(cond (kond then-c)
(else else-c)))
(if (= 1 0) (* 10 2) (+ 9 1))