Je suis nouveau à lisp et j'écris quelques programmes simples pour mieux me familiariser avec lui. Une des choses que je fais est d'écrire une version récursive et itérative d'une méthode factorielle. Cependant, j'ai rencontré un problème et n'arrive pas à le résoudre.Avertissement Lisp: xx n'est ni déclaré ni lié, il sera traité comme s'il avait été déclaré SPECIAL
je vis une erreur semblable à Lisp: CHAR is neither declared nor bound mais n'a pas été réellement parvenu à une solution autre que l'OP se rendit compte qu'il a fait une « erreur de frappe ». Dans le REPL, je peux utiliser la fonction setf et cela fonctionne très bien. J'utilise aussi LispBox avec emacs. J'apprécierais toutes suggestions!
(defun it-fact(num)
(setf result 1)
(dotimes (i num)
(setf result (* result (+ i 1)))
)
)
AVERTISSEMENT IT-FACT: Le résultat est déclaré ni lié, elle sera traitée comme si elle était déclarée spéciale.
Voir http://www.cs.cmu.edu/Groups/AI /html/faqs/lang/lisp/part1/faq-doc-4.html, en particulier l'exemple "GOOD:". Les gens d'ici sont plutôt sympathiques, mais le code est plus facile à lire s'il est en retrait plutôt que le code Lisp typique. À votre santé! – Alec