如何(优雅地)一次迭代两个列表?

bou*_*ekv 2 clojure

我想找到更好看的替代代码:

(def x (range 1 10))
(def y '(0 4 3 5 1 2 7 3 11))
(for [i (range 0 (count y))] [(nth x i) (nth y i)])
Run Code Online (Sandbox Code Playgroud)

如果我已经有了之前的结果,我可以简单地说

(def z (for [i (range 0 (count y))] [(nth x i) (nth y i)]))
(for [[x y] z] [x y])
Run Code Online (Sandbox Code Playgroud)

你能找到一些更好看的替代品吗?

示例简短易读.如果您修改它以执行更复杂的操作,则第一个示例可能会停止可读.

Ank*_*kur 8

你可以使用map:

(map vector x y)
Run Code Online (Sandbox Code Playgroud)