Pregunta

Estoy haciendo un ejercicio de clase en LISP, y yo estoy recibiendo este error

CG-USER(286): 
Error: Invalid EXCL::PREDICATE argument:
       #<Vector @ #x20fd488a>
[condition type: SIMPLE-ERROR]

Podría decirme lo que esto se supone que significa eso? Voy a pegar el código que da el error, pero es larga y desagradable.

Debe encontrar las estaciones tras la dada en la red de metro de Madrid, siendo ESTACION el nombre de la estación, CAMBIO-ESTACION una lista que describe las transferencias cortas (formato: (L01 Sol Tribunal L02)), de Vias una lista que describe el orden de las estaciones de las líneas de metro (formato (l01 Sol Opera 1.01)). Hay algunas estaciones rotos (los que están en AVERIADAS) y tengo que finde las estaciones cierra (en PROFUNDIDAD-VECINOS saltos).

Obviamente, no espero que depurar el código (que es una gran cantidad de código feo para leer), pero sería genial si alguien me podría decir lo que es el error que supone que significa eso. Gracias.

Este es el código:

Esta es la ejecución con el error:

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]

Y esta es una ejecución exitosa:

CG-USER(288): (estaciones-cercanas-a 'Noviciado *vias* *cambio-estacion*)
(SANTO_DOMINGO SAN_BERNARDO PLAZA_DE_ESPAÑA)
¿Fue útil?

Solución

tendría que pegar un trazado inverso.

Pero, como lo leí, el error básicamente dice que en Lisp espera un predicado, que tiene algunos datos de tipo vector.

Normalmente, esto sería debido a que algunos argumentos están en la posición incorrecta.

Otros consejos

En primer lugar la función, como la rama de la otra expresión if, tiene

        (remove-duplicates
          (remove-if #(lambda(x)(eq x estacion))
          ...

Sospecho que desea

        (remove-duplicates
          (remove-if #'(lambda(x)(eq x estacion))
          ...

es decir., Una comilla simple falta.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top