我已经搜索了“clojure dynamic”和“clojure dynamic scope”并阅读了10多篇文章,但我仍然不清楚
我正在尝试修复clj-http项目中的问题,但首先我必须理解代码。它定义了如下函数:
但是我不明白
^:dyanmic
的作用。我认为这篇文章可能回答了我的问题,但代码示例似乎“丢失”了,所以我甚至不确定它是否指的是我困惑的同一件事情。我正在尝试修复clj-http项目中的问题,但首先我必须理解代码。它定义了如下函数:
(defn ^:dynamic parse-html
"Resolve and apply crouton's HTML parsing."
[& args]
{:pre [crouton-enabled?]}
(apply (ns-resolve (symbol "crouton.html") (symbol "parse")) args))
但是我不明白
^:dynamic
的含义和作用。有人能够以简单易懂的方式解释一下吗?
parse-html
不是动态作用域的,那么重新绑定它将是非法的。 - amalloy