H: Khi nào, nếu có, có ích khi trích dẫn a lambda
, và khi nào, nếu có, chúng ta không được trích dẫn a lambda
?
Mọi người sử dụng lambda
s theo ba cách:
- trơn:
(lambda (x) x)
- trích dẫn:
'(lambda (x) x)
- trích dẫn sắc nét:
#'(lambda (x) x)
Chủ đề SO này thảo luận về ba loại, chủ đề SO này giải thích tại sao không trích dẫn (NB: không sắc nét ) lambda
và chủ đề SO này cũng thảo luận về sự khác biệt giữa trích dẫn và trích dẫn sắc nét.
Bây giờ, nút thủ công trên các hàm ẩn danh và chuỗi doc để lambda
lưu ý rằng đó lambda
là tự trích dẫn:
Một cuộc gọi của hình thức
(lambda ARGS DOCSTRING INTERACTIVE BODY)
là tự trích dẫn; kết quả của việc đánh giá biểu thức lambda là chính biểu thức đó. Biểu thức lambda sau đó có thể được coi là một hàm ...
Vì vậy, nó xuất hiện (lambda (x) x)
và #'(lambda (x) x)
tương đương, nhưng '(lambda (x) x)
không (quan trọng nhất là khi biên dịch byte).
Có vẻ như người ta hiếm khi muốn trích dẫn một lambda
, nhưng nó không rõ ràng với tôi khi nào, nếu có, chúng ta nên, hoặc không nên, trích dẫn sắc nét:
- Là trích dẫn sắc nét
lambda
chỉ đơn giản là một sự lựa chọn phong cách, hoặc có những trường hợp trong đó trích dẫn sắc nét là thực sự hữu ích? - Có những trường hợp trong đó chúng ta không được trích dẫn a
lambda
, nghĩa là, khi làm như vậy sẽ làm thay đổi ý nghĩa của mã?