“无效的expl ::谓词参数”常见LISP中的错误
-
11-10-2019 - |
题
我正在LISP中进行课堂运动,并且我遇到了这个错误
CG-USER(286):
Error: Invalid EXCL::PREDICATE argument:
#<Vector @ #x20fd488a>
[condition type: SIMPLE-ERROR]
你能告诉我这应该是什么意思吗?我将粘贴给出错误的代码,但漫长而丑陋。
它应该在马德里的地铁网络中找到遵循的站点,作为站点的名称,cambio-estacion,描述短传输的列表(格式:(l01 sol L02法庭)),VIA在地铁线(格式(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)
解决方案
您需要粘贴回溯。
但是当我阅读时,错误基本上说,LISP期望谓词的地方,它获得了某种矢量数据。
通常,这是因为某些论点处于错误的位置。
其他提示
第一个功能,作为Else分支的 if
表达,你有
(remove-duplicates
(remove-if #(lambda(x)(eq x estacion))
...
我怀疑你想要
(remove-duplicates
(remove-if #'(lambda(x)(eq x estacion))
...
即,缺少一个报价。
不隶属于 StackOverflow