【问题标题】:LISP nested Loops perform in parallel. How would one force it to perform sequentially?LISP 嵌套循环并行执行。如何强制它按顺序执行?
【发布时间】:2014-04-24 04:11:42
【问题描述】:

在过去的两周里,我一直在慢慢学习 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 进行哪些更改才能获得这种类型的预期结果? 如果我对“顺序”一词的使用有误,请纠正我。我一直在阅读它,但我有点难以理解。

【问题讨论】:

    标签: lisp common-lisp nested-loops sequential


    【解决方案1】:

    你需要嵌套循环:

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

    【讨论】:

    • 谢谢!这正是我所需要的。及时、准确和专业。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-24
    • 2017-09-06
    • 1970-01-01
    • 1970-01-01
    • 2012-10-24
    • 2020-06-11
    • 1970-01-01
    相关资源
    最近更新 更多