我正在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))
          ...

即,缺少一个报价。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top