devo calcolare un polinomio simili -Lisp: la stessa funzione matematica valuta valori diversi in tempi diversi?
f (x) = x^4 - 2.274x^3 + 1.8x^2 - 0.576x + 1.0
con questa funzione lisp -
(defun polynomial (x)
(+ (+ (+ (+ (expt x 4) (* -2.274 * (expt x 3)))
(* 1.8 (* x x))) (* -0.576 x)) 0.1))
quando chiamo (polinomiale 0,5) il risultato è diverso a diverse valutazioni, come questo -
CL-USER> (polynomial 0.5)
-1.9495
CL-USER> (polynomial 0.5)
0.8786454
CL-USER> (polynomial 0.5)
0.07474504
CL-USER> (polynomial 0.5)
0.3032537
CL-USER> (polynomial 0.5)
0.23830011
CL-USER>
cosa sta succedendo? Sto usando l'ultimo sbcl.
'(* -2,274 * (expt x 3))' stato un mio errore di codifica e la REPL sta assegnando i valori a '' *! ora capisco perché la lisp è una tecnologia aliena. – ramgorur
Questo non è * tutto * quello strano. Il python repl non fa una cosa simile con '_'? Vedi anche **, ***, /, // e ///. –
@JoshuaTaylor IMO '*' all'interno di 'defun' dovrebbe generare un avviso in un SBCL di solito prolisso, mentre non lo aspetterei in altre implementazioni. – Sylwester