Định nghĩa chính xác của phá hủy và không phá hủy cấu trúc trong LISP (hoặc nói chung). Tôi đã cố gắng tìm kiếm ý nghĩa thực sự nhưng tôi chỉ tìm thấy rất nhiều cách sử dụng các thuật ngữ này mà không thực sự giải thích chúng.LISP - cấu trúc phá hoại và không phá hủy
Theo hiểu biết của tôi, hàm phá hoại có nghĩa là thay đổi ý nghĩa của cấu trúc (hoặc biến) - vì vậy khi tôi chuyển danh sách thành tham số cho hàm nó được gọi là hoạt động phá hoại, bởi vì nó thay đổi danh sách ban đầu và trả về một danh sách mới. Điều này đúng hay có một số ngoại lệ?
Ví dụ như đặt một hàm phá hoại (vì nó thay đổi giá trị của x)? Tôi nghĩ rằng không nhưng tôi không làm thế nào, làm thế nào tôi sẽ biện minh cho điều này.
(set 'x 1)
Xin lỗi vì có thể là một câu hỏi rất cơ bản .... Cảm ơn bạn đã trả lời!
Cũng thấy câu hỏi này: [pushnew không hỗ trợ địa điểm. Nó được coi là một vĩ mô phá hoại?] (Http://stackoverflow.com/q/16789594/1281433). Một số câu trả lời có thảo luận về các khái niệm về cấu trúc phá hoại và không phá hủy. –