Jestem nowy w seplenieniu i piszę kilka prostych programów, aby lepiej się z nim zapoznać. Jedną z rzeczy, które robię, jest pisanie rekursywnej i iteracyjnej wersji metody czynnikowej. Jednak natknąłem się na problem i nie mogę go rozwiązać.Ostrzeżenie Lispa: xx nie jest zadeklarowane ani powiązane, będzie traktowane tak, jakby zostało zadeklarowane SPECJALNE
Widziałem podobny błąd na Lisp: CHAR is neither declared nor bound , ale rozwiązanie nie zostało faktycznie osiągnięte, inne niż PO zdał sobie sprawę, że popełnił "błąd pisania". W REPL mogę używać funkcji setf i działa dobrze. Używam również LispBox z emacs. Byłbym wdzięczny za wszelkie sugestie!
(defun it-fact(num)
(setf result 1)
(dotimes (i num)
(setf result (* result (+ i 1)))
)
)
UWAGA w IT-FACT: wynik jest ani uznane ani związana, będzie traktowana tak, jakby zostały uznane specjalnych.
Zobacz http://www.cs.cmu.edu/Groups/AI /html/faqs/lang/lisp/part1/faq-doc-4.html, szczególnie przykład "DOBRY:". Ludzie tutaj są całkiem przyjaźni, ale kod jest łatwiejszy do odczytania, jeśli jest wcięty bardziej jak typowy kod Lispa. Twoje zdrowie! – Alec