Domanda

Sto facendo un excercise classe in LISP, e sto ottenendo questo errore

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

Potrebbe dirmi che cosa questo dovrebbe significare? Io incollare il codice di dare l'errore, ma è lungo e brutto.

Si deve trovare le stazioni seguente a quello dato rete metropolitana di Madrid, essendo ESTACION il nome della stazione, CAMBIO-ESTACION un elenco che descrive i trasferimenti brevi (formato: (L01 Sol L02 Tribunale)), VIAS un elenco che descrive l'ordine delle stazioni nelle linee della metropolitana (formato (L01 Sol Opera 1.01)). Ci sono alcune stazioni rotti (quelli in AVERIADAS) e devo finde stazioni chiude (in Profondità-vecinos salti).

Ovviamente, non mi aspetto di eseguire il debug il mio codice (si tratta di un sacco di brutti codice per leggere), ma sarebbe bello se qualcuno potrebbe dirmi che cosa è che l'errore dovrebbe significare. Grazie.

Ecco il codice:

Questa è l'esecuzione con l'errore:

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]

E questa è una corretta esecuzione:

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

Soluzione

Si avrebbe bisogno di incollare un backtrace.

Ma, come ho letto, l'errore in pratica dice che dove Lisp prevede un predicato, ha ottenuto alcuni dati tipo di vettore.

In genere questo sarebbe perché alcuni argomenti sono nella posizione sbagliata.

Altri suggerimenti

In primo luogo la funzione, come il ramo altro dell'espressione if, avete

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

Ho il sospetto che si desidera

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

vale a dire., Un apostrofo manca.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top