Quiero escribir un programa para encontrar las raíces de la ecuación cuadrática en Scheme. Usé LET para ciertas ataduras.Usando Let in Scheme
(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)))))
que define el discriminante con 4ac
ya no quería (* 4 a c)
. A pesar de que he definido (4ac (* 4 a c))
, es que me da este error:
expand: unbound identifier in module in:
4ac
.
Mi pregunta es ¿cómo se deja evaluado (qué orden)? Y si quiero 4ac
en mi let
¿debo escribir otro interior let
? ¿Hay una mejor manera de hacer esto?
¡Este es un ejemplo de SICP Lecture/Book! – Nishant