Saya bersenang-senang menambahkan beberapa saran ke fungsi:
(advice-add 'executable-find :around
(lambda (f &rest args)
(apply g args)))
;;; ^
Aduh, salah ketik. Memperbaikinya dan mengevaluasi kode di atas lagi. Tapi sekarang saya memiliki keduanya, saran "diperbaiki" dan "rusak" di sekitar fungsi itu.
Bagaimana saya menyingkirkan ini? Mengingat bahwa advice-remove
perlu objek fungsi atau saran sekitar (yang kosong di sini)?
(Jelas saya bisa berhenti dan memulai kembali, tetapi ada cara lain, bukan?)
eq
dengan yang sebelumnya, (2) saran-hapus akan membandingkan fungsi yang Anda berikan ke saran sampai menemukan salah satunya adalaheq
untuk itu dan menghapus itu, (3) bahkan jika saran-hapus menggunakan tes yang berbeda, sepertiequal
, itu masih tidak akan berhasil, karena evaluasi yang berbeda dari bentuk lambda tidak akanequal
saling. Ternyata (1) benar, tetapi (2) dan (3) salah: penggunaan saran-hapusequal
, dan mengevaluasi yang samalambda
dua kali menghasilkanequal
hasil!