|
Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
;; This file:
;; http://anggtwu.net/LISP/2025-remove-method.lisp.html
;; http://anggtwu.net/LISP/2025-remove-method.lisp
;; (find-angg "LISP/2025-remove-method.lisp")
;; Author: Eduardo Ochs <eduardoochs@gmail.com>
;;
;; See:
;; http://anggtwu.net/2025-modern.html
;; http://anggtwu.net/2025-modern.html#remove-method
;; (find-es "emacs" "cl-undefmethod")
;; https://lists.gnu.org/archive/html/help-gnu-emacs/2025-03/msg00019.html Edrx
;; https://lists.gnu.org/archive/html/help-gnu-emacs/2025-03/msg00020.html Stefan
;; https://dept-info.labri.fr/~strandh/Teaching/PFS/Common/David-Lamkins/chapter14.html
;; (find-try-sly-intro)
;; (find-clhsdoci "defmethod")
;; (find-clhsdoci "find-method")
;; (find-clhsdoci "remove-method")
;;
;; Thanks to scymtym - <https://github.com/scymtym> - from the #lisp
;; IRC channel for help on this!
* (eepitch-sbcl)
* (eepitch-kill)
* (eepitch-sbcl)
* (eepitch-sly)
* (eepitch-kill)
* (eepitch-sly)
(defstruct myab a b)
(defvar ab1)
(setq ab1 (make-myab :a 20 :b 30))
ab1 ;; -> #S(MYAB :A 20 :B 30)
(defmethod print-object ((p myab) stream)
(with-slots (a b) p
(format stream "~a_~a" a b)))
ab1 ;; -> 20_30
(defvar m)
(setq m (find-method
#'print-object '()
(mapcar #'find-class '(myab t))))
(remove-method #'print-object m)
ab1 ;; -> #S(MYAB :A 20 :B 30)