Мені було весело, додаючи поради до функції:
(advice-add 'executable-find :around
(lambda (f &rest args)
(apply g args)))
;;; ^
О, друкарська справа. Виправлено і знову оцінено вищезгаданий код. Але тепер у мене є обидві, "виправлені" і "зламані" поради навколо цієї функції.
Як я можу позбутися від них? Враховуючи, що advice-remove
потрібен або об’єкт функції, або поради навколо (який тут порожній)?
(Очевидно, що я можу просто кинути і перезапустити, але є інший спосіб, чи не так?)
eq
попередню, (2) порада-видалення порівнюватиме функцію, яку ви передаєте її порадам, поки не знайде той, який єeq
йому, і видаліть це (3), навіть якщо порада для видалення використовувала інший тест, як-отequal
, він все одно не буде працювати, оскільки різні оцінки лямбда-форми не будутьequal
між собою. Виявляється, що (1) є правильним, але (2) та (3) помиляються: поради щодо видалення використанняequal
та оцінювання одного і того жlambda
двічі даютьequal
результати!