每次从序列中获取两个元素

Kan*_*ane 11 clojure

clojure是否像普通的lisp一样具有强大的"循环".

例如:

每次从序列中获取两个元素

Common Lisp:

(loop for (a b) on '(1 2 3 4) by #'cddr collect (cons a b))
Run Code Online (Sandbox Code Playgroud)

如何在Clojure中做到这一点?

sw1*_*1nn 13

通过利用for和一些解构,您可以实现您的具体示例:

(for [[a b] (partition 2 [1 2 3 4])](use-a-and-b a b))
Run Code Online (Sandbox Code Playgroud)