【发布时间】:2017-04-08 23:15:42
【问题描述】:
作为一项家庭作业,我正在尝试遍历列表并对我在 Common Lisp 中遇到的每个元素进行 if 语句。 我的大部分问题都来自于我对语法不太了解。
这是我想要做的:
*lst* 是例如(1 4 2 6 4 7 2 4)
(setq finalList())
(loop for x in lst
(if ((< x 5) && (not(equal(x nil)))) ; IF x < 5 and x != nil
(append lst x) ; THEN STATEMENT
(princ "Skip") ; ELSE STATMENT
)
逻辑上应该这样做,但是,我的语法可能有误 (如果这里忘记多出冒号,判断是否为伪代码,谢谢)
如何遍历列表并对遇到的每个元素进行 if else 语句?
【问题讨论】:
-
请注意,您的问题是关于 Common Lisp 语言,而不是 CLISP 一个 Common Lisp 实现。
-
使用
loop,您走在了正确的道路上。然而它是一个macro并且它有特殊的语法,因此你不能只在它的“body”中插入 s 表达式并期望它能够工作。有些人甚至会说loop和format设施本身就是一种完整的语言。
标签: list loops if-statement syntax common-lisp