gpt4 book ai didi

loops - 在 Common Lisp 循环内的条件下收集并做某事

转载 作者:太空宇宙 更新时间:2023-11-03 18:55:41 25 4
gpt4 key购买 nike

我需要在循环中的条件下执行除“collect”之外的指令,但我无法找出有效的语法...

例如,我希望以下代码打印 i 并在 2 < i 时收集它。

(loop for i '(1 2 3 4) in  when (< 2 i) (print i) collect i)  ==> (3 4)

希望你能帮上忙!

最佳答案

:if:when中的多个子句需要用:and连接。关键字 :end 实际上被忽略了,除了让您更轻松地阅读它之外没有做任何其他事情。

(loop :for i :in '(1 2 3 4)
:when (< 2 i)
:do (print i)
:and :collect i
:end) ; ==> (3 4) (and prints 3 and 4 as side effect)

我建议你阅读 LOOP for Black Belts .如果你看right above this part您会在稍微复杂一点的示例中看到 :and

注意:loop 接受来自任何包的符号,所以我的风格是使用关键字 package 而不是用 loop 关键字污染我自己的包,我的编辑器将它突出显示得更好.你不需要按照我的方式去做:-)

关于loops - 在 Common Lisp 循环内的条件下收集并做某事,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47242974/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com