查询在Clojure中从1个向量复制到另一个向量

时间:2015-10-29 15:39:03

标签: loops clojure copying

我正在Clojure中实现合并排序。使用我的Java参考点,我需要创建等效的

for (int k = lo; k <= hi; k++) {
            aux[k] = a[k]; 
}

在Clojure。

这是我已经尝试过的:

  1. Loop和recur似乎看起来不像'for'循环,让我相信功能方法会有根本不同的东西。
  2. 我也看了一下似乎最接近我需要的“for”宏,但事实上跳了这么多篮球才能达到它,不​​知何故让我觉得我没有按照Clojure的方式做点什么。
  3. 我开始用类似的东西 (defn copy-vector [a aux] (doseq [k a] (swap! aux conj k)))
  4. 但对于一些应该简单的东西而言,这似乎非常复杂,甚至可能甚至没有做到我需要的东西。有关Clojure方式的任何输入/指导吗?

1 个答案:

答案 0 :(得分:0)

以下是Clojure中的一些mergesort实现。

[扰流板警告:这些是完整的实施。如果你想自己解决这个问题,你可能不想立即看看这些。]

https://codereview.stackexchange.com/questions/23627/mergesort-implementation-in-clojure

https://gist.github.com/alco/2135276 (第二个包含指向其他几个实现的链接。)