关于在 Clojure 中从一个向量复制到另一个向量的查询

Query about copying from 1 vector into another vector in Clojure

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

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

在 Clojure 中。

这是我已经尝试过的方法:

  1. 循环和重复,看起来不太像 'for' 循环,这让我相信功能方法会完全不同。
  2. 我还查看了 "for" 宏,它似乎最接近我的需要,但事实上我跳了很多圈才得到它,不知何故让我觉得我没有在做 Clojure 的事情方式。
  3. 我从类似的东西开始 (defn copy-vector [a aux] (doseq [k a] (swap! aux conj k)))

但是对于一些应该很简单的事情来说,这似乎非常复杂,甚至可能没有完全按照我的需要去做。 inputs/guidance 关于 Clojure 的实现方式吗?

以下是 Clojure 中的一些合并排序实现。

[剧透警告:这些是完整的实现。如果您想自己完成它,您可能不想立即查看这些内容。]

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

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