Question

Je suis très nouveau à LISP. J'utilise allegro-cl. J'éprouve des difficultés d'appeler une fonction que je l'ai défini et chargé. Je voudrais savoir quels sont les moyens que je peux parcourir les choses que j'ai définis, par exemple la liste de toutes les méthodes dans un certain paquet, ou la liste des variables seulement, ou liste noms de paquets, etc.

Était-ce utile?

La solution

Je ne suis pas en utilisant Allegro CL, donc je ne peux vous dire sur les outils lui-même la CL prévoit. Vous pouvez vérifier ce que l'Allegro CL IDE a à offrir pour cette tâche.

Vous pouvez obtenir une liste de tous les paquets avec la fonction LIST-ALL-EMBALLAGES. Vous pouvez l'utiliser comme ceci pour imprimer leurs noms:

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

CL paquets sont des collections de symboles (à savoir noms), et non les objets associés à ces noms. Vous devez interroger les noms les plus pour voir s'il y a une valeur et / ou une fonction définie pour ce symbole. Vous pouvez utiliser DO-SYMBOLES en boucle sur tous les symboles dans un paquet . Ce imprimerait tous les symboles dans le package courant:

(do-symbols (s) (print s)

seules les fonctions:

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

et ce que les fonctions dont paquet maison est le package actuel:

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

Autres conseils

Si vous vous souvenez d'une partie du nom, vous pouvez toujours utiliser APROPOS (peut-être limité à un ensemble spécifique) pour trouver le nom complet.

Je couru dans le même problème. Après avoir lu les documents, je suis venu à l'opinion qu'il n'y a pas moyen de rappeler une définition tapé dans REPL.

Pour contourner ce problème, je tape toujours dans la fenêtre de l'éditeur (Ctrl + N sinon présent). De cette façon, je peux taper les définitions, les éditer, etc. avec un grand confort. Si je dois évaluer une définition, j'appuyez sur Ctrl + E pour l'évaluation progressive (voir d'autres options dans le menu Outils). Je garde une fenêtre d'écoute sur la gauche et une fenêtre de l'éditeur sur le droit de voir les entrées et sorties.

Il y a encore un petit problème qui peut même causer quelques bugs: si vous oubliez d'évaluer une définition après avoir effectué des modifications, l'ancien reste dans le REPL. Continuez à appuyer sur Ctrl + E.

Si vous avez plusieurs fichiers ouverts et que vous voulez trouver une définition dans l'un des fichiers source, vous pouvez utiliser la recherche> Apropos.

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