2013-07-29 17 views
7

Popełniłem błąd i zapomniałem podać argumenty słów kluczowych w defgeneric przy pierwszym skompilowaniu. Teraz naprawdę nie chcę ponownie uruchamiać SLIME, aby przedefiniować ten jeden defgeneric, aby dodać więcej argumentów. Czy jest jakiś sposób, aby "to niezdefiniować"?Zdefiniuj ponownie ogólną funkcję z inną listą lambda

Oh, przepraszam, nic nie szkodzi, po usunięciu wszystkich metod zdefiniowanych za to uniwersalne, SBCL nowo, więc to wszystko dobre teraz:

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

dla potomności.

Odpowiedz

0

Inną możliwością jest skompilowanie jednej lub więcej metod z dodatkowymi argumentami, a następnie po wprowadzeniu Common Lisp "skarży się" na nieznane parametry, wybierz restart, który aktualizuje argumenty dostępne w funkcji ogólnej.

+0

Heh, teraz doszedłem do konkluzji, faktycznie chcę go z powrotem bez słów kluczowych ... to wydaje się być trudniejsze :) Tylko, aby się upewnić: moje jedyne opcje przy restarcie, kiedy definiuję niekompatybilne metody są albo zakończyć, albo przerwać ... nie oferują niczego, aby zastąpić. –

8

SLIME polecenie ma Ctrl-C Ctrl-u na definiowanie funkcję. Ustaw kursor na symbolu funkcji, a następnie wpisz sekwencję.

Powiązane problemy