Eu estava me divertindo adicionando alguns conselhos a uma função:
(advice-add 'executable-find :around
(lambda (f &rest args)
(apply g args)))
;;; ^
Ai, um erro de digitação. Corrigido e avaliado o código acima novamente. Mas agora tenho os conselhos "corrigido" e "quebrado" em torno dessa função.
Como faço para me livrar deles? Dado que advice-remove
precisa do objeto de função ou do conselho ao redor (que está vazio aqui)?
(Obviamente, posso simplesmente sair e reiniciar, mas há outra maneira, não é?)
eq
a anterior, (2) aconselha-remove compara a função que você a transmite aos conselhos até encontrar aquele que éeq
a ele e o remove, (3) mesmo que o conselho-remova usasse um teste diferente, por exemploequal
, ele ainda não funcionaria, porque avaliações diferentes de uma forma lambda não funcionariamequal
uma à outra. Acontece que (1) está correto, mas (2) e (3) estão errados: aconselhar - remover usosequal
e avaliar o mesmolambda
duas vezes produzequal
resultados!