【问题标题】:Trying to use a Clojure-Contrib Graph function尝试使用 Clojure-Contrib Graph 函数
【发布时间】:2013-12-08 14:52:28
【问题描述】:

我无法从 Clojure-Contrib Graph 获取函数定点运行。诚然,这个问题是微不足道的。我尝试使用loading clojure-contrib 中显示的技术,但仍然遇到麻烦。

注意:我正在使用 Leiningin 启动 REPL。

这里是定点源代码:

(defn fixed-point

“反复对数据应用乐趣直到(等于旧数据新数据) 返回真。如果发生最大迭代,它将抛出一个 例外。将 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)))

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

【问题讨论】:

  • “麻烦”是什么意思。这很模糊。我们需要更多细节,例如异常。
  • 我正在尝试在文本编辑器中使用定点编写一个函数,然后在 REPL 中运行该函数。但我不确定 Graph 是否需要依赖或使用 Maven...
  • @Alex 你是如何开始 REPL 的?您是使用命令行并手动设置类路径还是使用 leiningen?请编辑答案并包含您启动 REPL 所遵循的步骤,以便我们为您提供帮助。

标签: clojure clojure-contrib


【解决方案1】:

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

如果你仍在使用 Clojure 1.2,你应该可以让它工作,否则 1.3 有一个替代 clj-graph here,但已经安静了一段时间。

无论如何,您都应该检查您的project.clj

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

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

【讨论】:

  • 我使用的是 1.5.1。我对这个版本不走运吗?
  • 确实,试试 clj-graph 或者降级到 1.2
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-05
  • 2017-12-08
  • 2022-08-08
相关资源
最近更新 更多