Sự khác biệt giữa đánh giá gấp đôi và # 'gấp đôi trong Clojure/Lisp là gì?Sự khác biệt giữa thủ tục và thủ tụC# trong Lisp/Clojure là gì?
1:2 user=> double
#<core$double__4077 [email protected]>
1:3 user=> #'double
#'clojure.core/double
Sự khác biệt giữa đánh giá gấp đôi và # 'gấp đôi trong Clojure/Lisp là gì?Sự khác biệt giữa thủ tục và thủ tụC# trong Lisp/Clojure là gì?
1:2 user=> double
#<core$double__4077 [email protected]>
1:3 user=> #'double
#'clojure.core/double
Trong Clojure, #'foo
là viết tắt của (var foo)
, mà trả về đối tượng biến foo
đề cập đến, như trái ngược với giá trị của nó. Nhìn nó trong tài liệu tham khảo:
Tôi không chắc chắn nếu bạn cũng muốn biết ý nghĩa trong Lisp: Trong Common Lisp, #'foo
là viết tắt của (function foo)
, được sử dụng để truy cập chức năng giá trị ràng buộc để tên foo
khi không vị trí vận hành.
hơi sai. (Hàm foo) tra cứu giá trị chức năng, đúng, nhưng không nhất thiết phải là biểu tượng. Một hàm từ vựng không có biểu tượng nào có liên quan, do đó, nó trông về giá trị hàm liên kết với tên (!) Foo từ môi trường từ vựng. –
Đúng, cố định. Tôi thực sự nên sửa xu hướng của tôi để nói "biểu tượng" khi tôi có nghĩa là "tên". – Svante