【发布时间】:2021-02-11 08:27:42
【问题描述】:
我已经在 common lisp 中工作了一段时间,但我不明白为什么我使用的循环不会返回列表。如果我在循环结束时使用“Finally”语句,它将打印新列表(正确!),但它不会在它之外打印或让我将它用于任何事情。
我发现的所有示例都表明 return 语句应该这样做,但当我尝试这样做时仍然没有骰子。它只是告诉我,当我尝试在循环之外使用它时,meanList 是未定义的,并且在那里初始化它也不起作用。
循环的最终目标是返回每组数据元素的平均值列表。
(defparameter data
' ((2.0 8.0) (0.9 1.2) (6.0 2.0)
(7.0 3.5) (4.0 6.0) (1.0 4.0)))
(loop for i in data
do (setq j (mean i)) collect j into meansList
finally (return (meansList))
mean 函数返回列表的平均值。我已经检查了好几次,都按预期工作,但如有必要,我可以在这里提供。
【问题讨论】:
-
这属于“由拼写错误引起的”问题;要评估的变量周围的多余括号,将其转换为函数调用。
标签: loops lisp common-lisp collect