Domanda

Sono molto nuovo a LISP. Sto usando allegro-cl. Sto avendo difficoltà a chiamare una funzione che ho definito e caricato. Vorrei sapere quali sono alcuni modi posso passare in rassegna le cose che ho definito, per esempio, che elenca tutti i metodi in un certo pacchetto, o annuncio solo variabili, o annuncio nomi dei pacchetti, ecc.

È stato utile?

Soluzione

Non sto usando Allegro CL, quindi posso solo dirvi circa gli strumenti di CL si prevede questo. Si potrebbe voler controllare ciò che l'Allegro CL IDE ha da offrire per questo compito.

È possibile ottenere una lista di tutti i pacchetti con la funzione LIST-ALL-PACCHETTI. Si potrebbe usare in questo modo per stampare i loro nomi:

(dolist (p (list-all-packages)) (write-line (package-name p)))

pacchetti CL sono raccolte di simboli (cioè nomi), non gli oggetti associati a questi nomi. Bisogna interrogare i nomi ulteriormente per vedere se c'è un valore e / o una funzione definita per quel simbolo. È possibile utilizzare DO-simboli per un ciclo su tutti i simboli in un pacchetto . Ciò stampare tutti i simboli nel package corrente:

(do-symbols (s) (print s)

Questa solo le funzioni:

(do-symbols (s) (when (fboundp s) (print s)))

e questo solo le funzioni il cui pacchetto di casa è il pacchetto corrente:

(do-symbols (s)
  (when (and (eq (symbol-package s) *package*)
             (fboundp s))
    (print s)))

Altri suggerimenti

Se vi ricordate una parte del nome, si può sempre usare APROPOS (possibilmente limitati a un pacchetto specifico) per trovare il nome completo.

mi sono imbattuto nello stesso problema. Dopo aver letto la documentazione, mi è venuto il parere che non v'è alcun modo per ricordare una definizione digitato in REPL.

Per risolvere questo problema, ho sempre digitare nella finestra dell'editor (Ctrl + N se non presente). In questo modo posso digitare le definizioni, modificarli, ecc, con grande comodità. Se ho bisogno di valutare una definizione, premo Ctrl + E per la valutazione incrementale (vedi altre opzioni nel menu Strumenti). Continuo a una finestra ascoltatore sul una finestra editor di sinistra e sulla destra per vedere ingressi e le uscite.

C'è ancora un piccolo problema che può anche causare alcuni bug: se si dimentica di valutare una definizione dopo aver apportato modifiche ad esso, quello vecchio rimane nella REPL. Tenere premuto Ctrl + E.

Se si dispone di diversi file aperti e desidera individuare una definizione in uno dei file di origine, è possibile utilizzare Ricerca> A proposito.

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