Tôi mới sử dụng và viết một vài chương trình đơn giản để làm quen với nó. Một trong những điều tôi đang làm là viết một phiên bản đệ quy và lặp lại của một phương pháp giai thừa. Tuy nhiên, tôi đã gặp một vấn đề và dường như không thể giải quyết nó.Cảnh báo Lisp: xx không được khai báo cũng như bị ràng buộc, nó sẽ được xử lý như thể nó được khai báo ĐẶC BIỆT
Tôi đã gặp lỗi tương tự tại Lisp: CHAR is neither declared nor bound nhưng giải pháp không thực sự đạt được, ngoài OP nhận ra anh ta đã tạo "lỗi nhập". Trong REPL tôi có thể sử dụng hàm setf và nó hoạt động tốt. Tôi cũng đang sử dụng LispBox với các emacs. Tôi sẽ đánh giá cao bất kỳ lời đề nghị!
(defun it-fact(num)
(setf result 1)
(dotimes (i num)
(setf result (* result (+ i 1)))
)
)
CẢNH BÁO trong lĩnh vực CNTT-SỰ THẬT: KẾT QUẢ không phải là tuyên bố cũng không bị ràng buộc, đó sẽ được coi như thể nó đã được tuyên bố ĐẶC BIỆT.
Xem http://www.cs.cmu.edu/Groups/AI /html/faqs/lang/lisp/part1/faq-doc-4.html, đặc biệt là ví dụ "GOOD:". Mọi người ở đây khá thân thiện theo cách nào đó, nhưng mã của bạn dễ đọc hơn nếu nó thụt vào giống như mã Lisp điển hình. Chúc mừng! – Alec