Frage

Ich bin ein Klassenzimmer excercise in LISP zu machen, und ich bin immer dieser Fehler

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

Könnten Sie mir sagen, was das bedeuten soll? Ich werde den Code gibt den Fehler einfügen, aber es ist lang und hässlich.

Es sollte die Stationen nach dem gegebenen in Madrid U-Bahn-Netz, wobei ESTACION finden die Namen der Station, CAMBIO-ESTACION eine Liste beschreibt kurze Transfers (Format: (L01 Sol L02 Tribunal)), VIAS eine Liste beschreibt die Reihenfolge der Stationen in den U-Bahnlinien (Format (L01 Sol Opera 1.01)). Es gibt einige gebrochenen Stationen (die, die in AVERIADAS) und ich habe die schließen Stationen finde (in profundidad-VECINOS Sprüngen).

Natürlich, ich erwarte nicht, dass Sie meinen Code zu debuggen (es ist eine Menge hässlichen Code zu lesen), aber es wäre toll, wenn mir jemand sagen könnte, was dieser Fehler bedeuten sollte. Danke.

Hier ist der Code:

Dies ist die Ausführung mit dem Fehler:

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]

Und das ist eine erfolgreiche Ausführung:

CG-USER(288): (estaciones-cercanas-a 'Noviciado *vias* *cambio-estacion*)
(SANTO_DOMINGO SAN_BERNARDO PLAZA_DE_ESPAÑA)
War es hilfreich?

Lösung

Sie müßten einen Backtrace einzufügen.

Aber als ich es gelesen hätte, im Grunde der Fehler sagt, wo Lisp ein Prädikat zu erwarten, es hat einige Art von Vektordaten.

Normalerweise wäre dies, weil einige Argumente in der falschen Position sind.

Andere Tipps

Erste Funktion, wie der andere Zweig des if Ausdrucks, Sie haben

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

Ich vermute, Sie wollen

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

d., Ein Apostroph fehlt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top