Tôi đang thảo luận về việc đóng cửa với một người bạn và anh ta nghĩ rằng (partial + 5)
là đóng cửa. Nhưng tôi cho rằng việc đóng là một hàm đóng trên biến miễn phí, ví dụ:là một phần chức năng này là một đóng cửa?
(let [a 10]
(defn func1 [x] (+ x a))
)
thì func1
là đóng. Nhưng trong trường hợp này, 5
không phải là biến miễn phí. Vậy câu trả lời đúng là gì?
Trong khi câu trả lời được chấp nhận là chính xác về mặt thực hiện, tôi cho rằng nó không nên được coi là một đóng cửa, mà là "chỉ" một phần ứng dụng. Việc sử dụng đóng cửa là chi tiết triển khai nội bộ không được hiển thị trực tiếp với người gọi. – user2864740