Question

Je fais une excercise en classe dans LISP, et je reçois cette erreur

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

Pouvez-vous me dire ce que cela est censé signifier? Je vais coller le code donnant l'erreur, mais il est long et laid.

Il faut trouver les stations qui suit celle donnée dans le réseau de métro de Madrid, étant ESTACION le nom de la station, cambio ESTACION une liste décrivant des transferts courts (format: (L01 Sol Tribunal L02)), VIAS une liste décrivant l'ordre des stations dans les lignes de métro (format (L01 Sol Opera 1.01)). Il y a quelques stations brisées (celles de AVERIADAS) et je dois finde les stations se ferme (en sauts profundidad-VECINOS).

De toute évidence, je ne vous attendez pas à déboguer mon code (il est beaucoup de code laid à lire), mais ce serait bien si quelqu'un pouvait me dire quelle est cette erreur supposée signifier. Merci.

Voici le code:

Ceci est l'exécution avec l'erreur:

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]

Et ceci est une exécution réussie:

CG-USER(288): (estaciones-cercanas-a 'Noviciado *vias* *cambio-estacion*)
(SANTO_DOMINGO SAN_BERNARDO PLAZA_DE_ESPAÑA)
Était-ce utile?

La solution

vous devez coller un backtrace.

Mais comme je l'ai lu, l'erreur indique essentiellement que lorsque Lisp attendait un prédicat, il a obtenu des données de type vecteur.

En général, ce serait parce que certains arguments sont dans la mauvaise position.

Autres conseils

Première fonction, comme la branche d'autre de l'expression if, vous avez

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

Je suppose que vous voulez

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

i.e.., Une seule citation est manquante.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top