Hat jemand Erfahrung mit Racket? (If-else Problem)



  • ;; 1. Versuch
    
    (define (number x) 
      (if (< x 7) 'x+3 'x*4))
    
    ;; 2. Versuch
    
    (define (number x)
      (if (< x 7)
          (+ x 4)
          (* x 3)))
    

    Ich habe eine Zahl x. Wenn die Zahl kleiner als 7 ist, dann wird sie mit 3
    addiert, ansonsten mit der Zahl 4 multipliziert! Leider passiert nichts, wenn
    ich den Code in DrRacket kompiliere. Der If-Part wird schwarz markiert. Ich
    vermute, so sagt mir DrRacket, dass die Zeile nichts macht bzw. sinnlos ist!
    Ich habe auch schon verschiedene Möglichkeiten ausprobiert (siehe Code).

    Was kann ich tun?



  • Zumindest der zweite Code sieht richtig aus. In Clojure macht man das ganz ähnlich und da funktioniert's:

    (defn bla [x]
      (if (< x 7) 
          (+ x 4) 
          (* x 3))
    )
    
    (bla 7) ; Gibt 21 aus.
    

    L. G.,
    IBV



  • Hast du die Funktion denn mal aufgerufen? Beide sehen richtig aus (auch wenn die erste etwas anderes macht, als du vermutlich willst.)

    Disclaimer: Ich gehe davon aus, dass Racket sowas wie Scheme ist.


Anmelden zum Antworten