Desidero scrivere un programma per trovare le radici dell'equazione quadratica in Schema. Ho usato LET per determinati attacchi.Utilizzo dello schema Let in
(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)))))
ho definito la discriminante con 4ac
poiché non volevo (* 4 a c)
. Anche se ho definito (4ac (* 4 a c))
, mi sta dando questo errore:
expand: unbound identifier in module in:
4ac
.
mia domanda è come si lascia valutato (quale ordine)? E se voglio 4ac
nel mio let
dovrei scrivere un altro interno let
? C'è un modo migliore per farlo?
Questo è un esempio di SICP Lecture/Book! – Nishant