Mit Let in Scheme

Ich soll ein Programm schreiben, das finden die Wurzeln der quadratischen Gleichung in Schema. Ich verwendet, LASSEN Sie sich für bestimmte Bindungen.

(define roots-with-let
  (λ (a b c)
    (let ((4ac (* 4 a c))
          (2a (* 2 a))
          (discriminant (sqrt ( - (* b b) (4ac)))))
      (cons ( / ( + (- b) discriminant) 2a)
            ( / ( - (- b) discriminant) 2a)))))

Definierte ich die diskriminante mit 4ac da ich nicht wollte (* 4 a c). Obwohl ich definiert haben (4ac (* 4 a c)), es gibt mir diese Fehlermeldung:

erweitern: ungebundene Bezeichner in Modul: 4ac.

Meine Frage ist, wie lassen bewerten (in welcher Reihenfolge)? Und wenn ich will 4ac in meinem let soll ich schreiben, einen inneren let? Gibt es einen besseren Weg, dies zu tun?

  • Dies ist ein Beispiel von SICP Vorlesung/Buch !
InformationsquelleAutor unj2 | 2009-06-03
Schreibe einen Kommentar