我无法从 Clojure-Contrib Graph 获取函数定点运行。诚然,这个问题是微不足道的。我尝试使用加载 clojure-contrib中显示的技术,但仍然遇到麻烦。
注意:我正在使用 Leiningin 启动 REPL。
这是定点的源代码:
(defn fixed-point
“反复对数据应用乐趣,直到 (equal old-data new-data) 返回 true。如果发生最大迭代,它将引发异常。将 max 设置为 nil 以实现无限迭代。”
[data fun max equal]
(let [step (fn step [data idx]
(when (and idx (= 0 idx))
(throw (Exception. "Fixed point overflow")))
(let [new-data (fun data)]
(if (= data new-data)
new-data
(recur new-data (and idx (dec idx))))))]
(step data max)))
除了“定点溢出”之外,我似乎无法从此函数获得输出。有人可以展示一个有效的例子。