LISP嵌套循环并行执行。如何强制它按顺序执行?

LISP嵌套循环并行执行。如何强制它按顺序执行?,lisp,common-lisp,nested-loops,sequential,Lisp,Common Lisp,Nested Loops,Sequential,在过去的两周里,我一直在慢慢学习Lisp。我遇到了一种情况,Lisp并行执行两个循环,这不是我的目标。如果我理解正确,我想实现的目标将按顺序分类。为了让您了解发生了什么,我们可以查看以下内容: (loop for x in '(a b c d e) for y in '(1 2 3 4 5) collect (list x y)) 使用这种类型的编码,您将获得: ((A 1) (B 2) (C 3) (D 4) (E 5)) 但我所寻求的是: ((A 1) (A

在过去的两周里,我一直在慢慢学习Lisp。我遇到了一种情况,Lisp并行执行两个循环,这不是我的目标。如果我理解正确,我想实现的目标将按顺序分类。为了让您了解发生了什么,我们可以查看以下内容:

(loop for x in '(a b c d e)
      for y in '(1 2 3 4 5)
        collect (list x y))
使用这种类型的编码,您将获得:

((A 1) (B 2) (C 3) (D 4) (E 5))
但我所寻求的是:

((A 1) (A 2) (A 3) (A 4) (A 5) (B 1) (B 2) (B 3) and so on
为了获得这种类型的期望结果,我需要对循环进行哪些更改? 如果我顺序使用这个词有误,请纠正我。我一直在阅读它,但我很难理解它。

您需要嵌套循环:

(loop for x in '(a b c d e)
      nconc (loop for y in '(1 2 3 4 5)
                  collect (list x y)))
您需要嵌套循环:

(loop for x in '(a b c d e)
      nconc (loop for y in '(1 2 3 4 5)
                  collect (list x y)))

非常感谢。这正是我所需要的。及时、准确、专业,谢谢!这正是我所需要的。迅速、准确、专业。