Ich hatte eine ziemlich einfache Anforderung in meinem Scheme-Programm, mehr als eine Anweisung auszuführen, in der wahren Bedingung eines 'if'. . Also schreibe ich meinen Code, so etwas wie diese:Über "If .." in Scheme (Plt-Schema)
(if (= 1 1)
((expression1) (expression2)) ; these 2 expressions are to be
; executed when the condition is true
(expression3))
Offensichtlich ist, dass die oben nicht funktioniert, da ich unbeabsichtigt ein # Verfahren mit # Argumenten erstellt. Also, um meine Arbeit erledigt zu bekommen, lege ich einfach die obigen Ausdrücke in eine neue Funktion und rufe es von dort, anstelle von expression1, expression2. Es funktioniert funktioniert.
Also, mein Punkt hier ist: Gibt es ein anderes bedingtes Konstrukt, das meine Anforderung hier unterstützen kann?
Beachten Sie, dass der zweite Ausdruck ist wirklich die gleiche wie die erste: die (cond ...) functi on hat eine implizite (begin ...) innerhalb jeder Bedingung, die es überprüft, also sind sie offensichtlich gleich. –