append如何在CommonLisp中工作?
我刚开始学习Lisp,似乎不理解以下代码:append如何在CommonLisp中工作?,lisp,common-lisp,Lisp,Common Lisp,我刚开始学习Lisp,似乎不理解以下代码: (setf y (loop for x in y for z = (something) unless (condition for z) append z)) 哪里追加了z?它追加到循环终止时返回的未命名列表中。作为第一近似值,您可以将其视为 (loop ... append z into result finally (return result)) appen
(setf y (loop for x in y
for z = (something)
unless (condition for z)
append z))
哪里追加了z?它追加到循环终止时返回的未命名列表中。作为第一近似值,您可以将其视为
(loop ... append z into result finally (return result))
append
这里是一个循环关键字;它与append
函数无关,除了共享相同的名称之外——因此决定它如何工作的是宏,而不是append
函数。每个迭代中的所有z都被追加并作为一个列表返回。。。