Tôi đã rất vui khi thêm một số lời khuyên cho một chức năng:
(advice-add 'executable-find :around
(lambda (f &rest args)
(apply g args)))
;;; ^
Ouch, một lỗi đánh máy. Đã sửa nó và đánh giá mã trên một lần nữa. Nhưng bây giờ tôi có cả hai, lời khuyên "đã sửa" và "hỏng" xung quanh chức năng đó.
Làm thế nào để tôi thoát khỏi những điều này? Cho rằng advice-removecần phải có đối tượng chức năng hoặc lời khuyên xung quanh (mà trống ở đây)?
(Rõ ràng là tôi có thể thoát ra và khởi động lại, nhưng có một cách khác, phải không?)
eqvới các chức năng trước đó, (2) lời khuyên loại bỏ sẽ so sánh chức năng bạn chuyển nó với lời khuyên cho đến khi tìm thấy một trong số đó làeqvà loại bỏ điều đó, (3) ngay cả khi lời khuyên loại bỏ đã sử dụng một thử nghiệm khác, nhưequal, nó vẫn không hoạt động, bởi vì các đánh giá khác nhau về hình thức lambda sẽ khôngequalkhác nhau. Hóa ra (1) là đúng, nhưng (2) và (3) sai: sử dụng lời khuyên loại bỏequalvà đánh giálambdahai lần giống nhau tạo raequalkết quả!