0

我无法从 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)))

除了“定点溢出”之外,我似乎无法从此函数获得输出。有人可以展示一个有效的例子。

4

1 回答 1

1

clojure.contrib.graph没有活动的维护者,因此在1.2 clojure.contrib mega split之后从未迁移过。

如果您仍在使用 Clojure 1.2,那么您应该能够使其工作,否则这里有 1.3 的替代 clj-graph,但已经安静了一段时间。

你应该检查你的project.clj反正:

  • 正确的clojure版本
  • 正确的依赖声明

如果仍有问题,请在此处粘贴异常。

于 2013-11-24T03:27:53.570 回答