Soy nuevo en lisp y estoy escribiendo algunos programas sencillos para familiarizarme con él. Una de las cosas que hago es escribir una versión recursiva e iterativa de un método factorial. Sin embargo, me he encontrado con un problema y no puedo resolverlo.Aviso Lisp: xx no está declarado ni enlazado, se tratará como si hubiera sido declarado ESPECIAL
vi un error similar al Lisp: CHAR is neither declared nor bound pero no se alcanza una solución en realidad, aparte de la OP dio cuenta de que cometió un "error de escritura". En REPL puedo usar la función setf y funciona bien. También estoy usando LispBox con emacs. ¡Apreciaria cualquier sugerencia!
(defun it-fact(num)
(setf result 1)
(dotimes (i num)
(setf result (* result (+ i 1)))
)
)
ADVERTENCIA en TI-HECHO: RESULTADO no se declara ni obligado, será tratado como si se tratara de declarar ESPECIAL.
Ver http://www.cs.cmu.edu/Groups/AI /html/faqs/lang/lisp/part1/faq-doc-4.html, especialmente el ejemplo "BUENO". Aquí la gente es muy amigable, pero tu código es más fácil de leer si está sangrado más como el típico código Lisp. ¡Aclamaciones! – Alec