Loops 对于公共Lisp,循环和迭代有什么区别?

Loops 对于公共Lisp,循环和迭代有什么区别?,loops,common-lisp,Loops,Common Lisp,CommonLisp内置了一个强大的循环宏。它非常有用而且功能强大,我经常使用它 我也听说过一件非常类似的事情,叫做。它看起来真的很像循环,但有更多的Lispy感觉到它。这两者有什么区别?除了简单的风格偏好之外,还有什么理由转换到这些方面吗?我认为这可能过于宽泛(两者之间的区别是什么)和基于观点(任何转换的理由)。也就是说,值得注意的是,循环是语言的一部分,而迭代是一个外部库。请记住,开发CommonLisp是为了统一许多不同的Lisp。在早期的lisps中可能存在循环的版本。iterate可以

CommonLisp内置了一个强大的循环宏。它非常有用而且功能强大,我经常使用它


我也听说过一件非常类似的事情,叫做。它看起来真的很像循环,但有更多的Lispy感觉到它。这两者有什么区别?除了简单的风格偏好之外,还有什么理由转换到这些方面吗?

我认为这可能过于宽泛(两者之间的区别是什么)和基于观点(任何转换的理由)。也就是说,值得注意的是,循环是语言的一部分,而迭代是一个外部库。请记住,开发CommonLisp是为了统一许多不同的Lisp。在早期的lisps中可能存在循环的版本。iterate可以从头开始设计。是否有一些特定的问题没有在中得到回答,这些问题已经以“它类似于CL:LOOP宏,具有以下区别标记:…”开头?在手册中,有一个名为的附录,其中有关于迭代和其他CL迭代构造(例如dolist、dotimes等,当然还有循环)之间比较的小节。第A.3.7节似乎可以回答您的问题。因为我认为它不适合回答适当的堆栈溢出问题。如果这就是你想要的答案,那么这个问题可能属于另一个密切相关的原因:“要求我们推荐或查找书籍、工具、软件库、教程或其他非现场资源的问题对于堆栈溢出来说是离题的,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,请描述问题以及迄今为止为解决问题所做的工作。“无论如何,这些都不是糟糕的问题或无法回答的问题,它们只是不太适合堆栈溢出。一旦一个问题有了以上投票的答案,就很难摆脱它,所以我不想把它作为一个答案。这只是一个谷歌可以找到的非现场资源,文档,除此之外,简单的答案是:阅读精美手册。正如Joshua Taylor提到的,它附带了一个循环/迭代比较。该手册是从迭代页面链接的-请参阅您的链接。