[erledigt] [Scheme] Anfängerverständnissprobleme?
-
Hallo,
ich lese mir gerade das Buch Structure and interpretation of computer programs durch. Nun komme ich bei einer Übung nicht weiter:
(define a 3) (define b (+ a 1)) (+ 2 (if (> b a) b a))
Definiere a mit Wert 3.
Definiere b mit Wert 4.Addiere 2, b und a, wenn b größer ist als a.
Warum zeigt mir denn der Interpreter nur eine 6? Da müsste dann meines Wissens nach 9 rauskommen.
Und wenn nicht, warum ist denn überhaupt dieses a da?
-
Du verstehst das if falsch. Die letzte Zeile bedeutet:
Addiere 2 und das größere der beiden Zahlen a und b (in diesem Fall also b).
-
if (cond) true-expr false-expr
-
booaah danke ich versteh die Welt wieder ___
-
Habe doch noch ein kleines Missverständnis. Schaut euch diesen Code an:
(define (formel a b) ((if (> b 0) + -) a b))
Wenn b grösser ist als 0 wird dann b gewählt, ansonsten wird a gewählt, oder? Nun was ich gar nicht verstehe, ist diese "Folge" (+ -). Wann wird + und wann - benutzt?
EDIT: Moment, könnte es vllt. sein, dass + true und - false ist?
Also, das was links steht immer true und rechts false, oder wie?
-
Wenn b > 0 dann + sonst -
Also ist das Operatorselektion
-
Danke ___