Me estaba divirtiendo agregando algunos consejos a una función:
(advice-add 'executable-find :around
(lambda (f &rest args)
(apply g args)))
;;; ^
Ay, un error tipográfico. Lo arregló y evaluó el código anterior nuevamente. Pero ahora tengo ambos, el consejo "corregido" y el "roto" en torno a esa función.
¿Cómo me deshago de estos? Dado que advice-remove
necesita el objeto de función o el consejo (¿qué está vacío aquí?)
(Obviamente, puedo salir y reiniciar, pero hay otra forma, ¿no?)
eq
a las anteriores, (2) advice-remove compararía la función que la pasas a los consejos hasta que encuentre uno que eseq
para eliminarlo, (3) incluso si el consejo de eliminación utiliza una prueba diferente, comoequal
, todavía no funcionaría, porque las diferentes evaluaciones de una forma lambda no se aplicaríanequal
entre sí. Resulta que (1) es correcto, pero (2) y (3) están equivocados: aconsejar eliminar los usosequal
y evaluarloslambda
dos veces produceequal
resultados.