我正在LISP做课堂练习,我收到了这个错误
CG-USER(286):
Error: Invalid EXCL::PREDICATE argument:
#<Vector @ #x20fd488a>
[condition type: SIMPLE-ERROR]
你能告诉我这是什么意思吗?我将粘贴代码给出错误,但它很长而且很难看。
它应该在马德里的地铁网络中找到跟随给定站点的站点,ESTACION是站点的名称,CAMBIO-ESTACION是描述短传输的列表(格式:(L01 Sol L02 Tribunal)),VIAS是描述订单的列表地铁线路中的车站(格式(l01 Sol Opera 1.01))。有些电台坏了(AVERIADAS中有电台),我必须找到关闭电台(在PROFUNDIDAD-VECINOS跳转中)。
显然,我不希望你调试我的代码(这是很多难看的代码),但如果有人能告诉我这个错误应该是什么意思,那就太好了。感谢。
以下是代码:
这是执行错误:
CG-USER(286): (estaciones-cercanas-a 'Noviciado *vias* *cambio-estacion* 2 '(Sol Callao Noviciado Santo_Domingo PLAZA_DE_ESPAÑA SAN_BERNARDO RETIRO))
Error: Invalid EXCL::PREDICATE argument:
#<Vector @ #x20fd488a>
[condition type: SIMPLE-ERROR]
这是一次成功的执行:
CG-USER(288): (estaciones-cercanas-a 'Noviciado *vias* *cambio-estacion*)
(SANTO_DOMINGO SAN_BERNARDO PLAZA_DE_ESPAÑA)
答案 0 :(得分:2)
您需要粘贴回溯。
但是当我读到它时,错误基本上说Lisp期望一个谓词,它得到了一些类型的矢量数据。
通常这是因为一些参数处于错误的位置。
答案 1 :(得分:2)
第一个函数,作为if
表达式的else分支,你有
(remove-duplicates
(remove-if #(lambda(x)(eq x estacion))
...
我怀疑你想要
(remove-duplicates
(remove-if #'(lambda(x)(eq x estacion))
...
即,缺少单引号。