Trong khi cố gắng để giải quyết vấn đề 4Clojure "Universal Computation Engine" liên quan đến reimplementing thẩm định, tôi vô tình đã kết thúc gọi một cái gì đó như thế này:Biểu tượng Clojure làm gì khi được sử dụng làm chức năng?
(apply '/ '(16 8))
chứ không phải là mục đích:
(apply/'(16 8))
này có tác dụng phụ khó hiểu về việc trả lại 8
, điều đó khiến tôi nghĩ rằng tôi đã sai lầm về toán học của mình.
Sau này tôi nhận ra lỗi của mình sau khi gỡ lỗi — Tôi đã không đánh giá biểu tượng /
trước khi cố gọi nó — và vì vậy nhận ra rằng clojure.lang.Symbol
phải triển khai clojure.lang.IFn
. Nhưng việc triển khai thực hiện đó làm là gì? Tất cả những gì tôi có thể làm là trả lại nil
với một đối số hoặc đối số thứ hai nếu được.
bản sao có thể có của [Điều gì xảy ra khi tôi chuyển đối số cho biểu tượng Clojure?] (Http://stackoverflow.com/questions/8219305/what-happens-when-i-pass-arguments-to-a-clojure- ký hiệu) – amalloy