Ich habe da eine tolle lösung, aber leider mag mich scheme nicht.
irgendwie bekomme ich den einfach nicht überredet, in einer if klausel mehrere bedingungen auszuführen. if bla, dann mach x und y und z.
wenn mir nun wer sagen könnte, wie das zustande kommen kann…
Das liegt einfach an der Definition von if in SCHEME:
(if Bedingung THEN-klausel ELSE-Klausel)
Allerdings kannst du mehrere Bedingungen durch
(and Bedingung1 Bedingung2 … BedingungN) oder
(or Bedingung1 Bedingung2 … BedingungN) verknüpfen
(die Punkte natürlich alle weglassen). Hier ein Beispiel:
(if (and (= 0 0) (< 2 6) (> 3 1)) ; 3 Bedingungnen
(display "Es funktioniert") ; THEN-Klausel
(display "Es funktioniert nicht")) ;ELSE-Klausel
HINWEIS: Man kann nach einem if auch nur eine Anweisung in der THEN- oder ELSE-Klausel aufführen. Will man mehrere haben, dann fasst man die durch
(begin Anweisung1 Anweisung2 … AnweisungN)
zusammen.
Weiterhin viel Spaß mit SCHEME (engl. "gemein") ;-)
Kann man sonst auch if's schachteln?
Ich bin mir nicht sicher, was du damit meinst:
(if (if (if …)…)…) ;—>Sinn?
oder eher
(if Bedingung (if…) ELSE) ;—>JA
(if Bedingung THEN (if…) ;—>JA
Ja, Version Nummer zwei. Löst dass dann nicht auch das Problem von dem, mit dem größenwahnsinnigen Namen? Ach so, Erwähnte ich schon, dass ich hier bald Namneskonventionen wie "Name darf nicht ausschließlich aus Großbuchstaben" bestehen einführe? [img]
http://images.rapidforum.com/images/i15.gif[/img]
Hat sich eh erledigt. Geht auch ohne mehrere Bedingungen wunderbar.
Und wie lautet nun eigentlich die tolle Lösung?