问题

这些代码样本中哪些是更惯用的Common Lisp?

 (dotimes (_ 10) (write-line "Hello"))
 

要么

 (loop repeat 10 do (write-line "Hello"))
 

或者在Common Lisp中没有首选的迭代方法,我们应该只使用which-我们感觉像吗?

  最佳答案

在 ANSI Common Lisp 中,Paul Graham 反对使用 loop,因为标准指定不好(“这个宏的唯一真正定义是它的实现....”);但是有 反对意见

在你的示例中,dotimes可以说更简单,但它需要流道变量_.出于这个原因,我更喜欢loop – 但对loop的意见确实有所不同.到你的最后一点,因为Peter Seibel ,“一些Lisp黑客喜欢LOOP;其他人讨厌它.循环球迷喜欢它,因为它提供了表达某些通常需要的循环构造的简洁方法.它的拖拉机不喜欢它,因为它不够的Lispy”.

  相同标签的其他问题

loopscommon-lisp