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

1 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))
Run Code Online (Sandbox Code Playgroud)

使用这种类型的编码,可以得到:

((A 1) (B 2) (C 3) (D 4) (E 5))
Run Code Online (Sandbox Code Playgroud)

但我要求的是:

((A 1) (A 2) (A 3) (A 4) (A 5) (B 1) (B 2) (B 3) and so on
Run Code Online (Sandbox Code Playgroud)

我需要用Loop来改变以获得这种期望的结果?如果我在使用"顺序"一词时出错了,请纠正我.我一直在阅读它,但我有点难以理解这一点.

Rai*_*wig 5

你需要嵌套循环:

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