8
votes

Redefine fonction générique avec différentes listes Lambda

J'ai commis une erreur et j'ai oublié de spécifier des arguments de mots clés dans défenseur code> la première fois que je l'ai compilée. Maintenant, je ne veux vraiment pas redémarrer Slime uniquement pour redéfinir celui-ci défenseur code> pour inclure davantage d'arguments. Existe-t-il un moyen de "indéfinir" en quelque sorte?

Oh, désolé, peu importe, après avoir retiré toutes les méthodes définies pour ce générique, SBCl redéfinit-le, il est donc tout bon maintenant: p>

(remove-method #'some-generic 
  (find-method #'some-generic '() (list of method types)))


0 commentaires

3 Réponses :


0
votes

Une autre possibilité serait de compiler une ou plusieurs méthodes avec les arguments supplémentaires, puis, après votre Common Lisp Mise en œuvre "se plaint" des paramètres inconnus, sélectionnez le redémarrage qui met à jour les arguments disponibles dans le fonction générique.


1 commentaires

Heh, maintenant je suis arrivé à la conclusion, je veux réellement le retour avec les mots-clés ... Cela semble être plus difficile :) Juste pour m'assurer: Mes seules options du redémarrage, lorsque je définirai les méthodes incompatibles sont de soit Quitter ou avorter ... Cela n'offre rien de remplacer quoi que ce soit.



11
votes

voir fmakunbound . xxx


1 commentaires

Oh, oui, ce serait beaucoup plus facile.



9
votes

SLime a la commande CTRL-C CTRL-U pour non révéler une fonction. Définissez le curseur sur le symbole de la fonction, puis tapez la séquence.


0 commentaires