【发布时间】:2012-08-30 04:25:26
【问题描述】:
在尝试解决涉及重新实现评估的 4Clojure 问题“Universal Computation Engine”时,我不小心最终调用了这样的代码:
(apply '/ '(16 8))
而不是预期的:
(apply / '(16 8))
这有返回 8 的令人困惑的副作用,这让我觉得我搞砸了我的数学。
我后来在一些调试后意识到我的错误——我在尝试调用它之前未能评估/ 符号——因此意识到clojure.lang.Symbol 必须实现clojure.lang.IFn。但是那个实现做什么呢?我所能做的就是返回 nil 并带有一个参数,或者如果给定了第二个参数。
【问题讨论】:
标签: clojure