gpt4 book ai didi

Lisp:尝试使用 acons 和循环生成 a-list 时出现 APPLY 错误

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

我尝试在 clisp 中运行这段代码:

(defun gen-world
(loop for x to *hight*
do (loop for y to *width*
do (acons '(x . y) '(rock) *world*))))

并得到以下错误:

*** - APPLY: argument list given to SYSTEM::ERROR-OF-TYPE is dotted
(terminated by
"Invalid specialized parameter in method lambda list
(LOOP FOR X TO *HIGHT* DO
(LOOP FOR Y TO *WIDTH* DO (ACONS '(X . Y) '(ROCK) *WORLD*))): (LOOP FOR Y IN
*WIDTH* DO (ACONS '(X . Y) '(ROCK) *WORLD*))"
)

当我运行时

(acons '(x . y) '(rock) *world*)

没有错误

为什么会这样?
编辑:*hight* *width**world* 是全局的并且在范围内。 *world* 是一个列表。

最佳答案

我可以在这里看到两个问题。

  1. 您缺少参数列表,因此将 LOOP 形式用作参数列表。它恰好包含一个点对(X . Y),这是不允许的。
  2. 当您可能想要一对包含 X 的(整数)

试试这个:

(defun gen-world ()
(loop for x to *hight*
do (loop for y to *width*
do (acons `(,x . ,y) '(rock) *world*))))

关于Lisp:尝试使用 acons 和循环生成 a-list 时出现 APPLY 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13841129/

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