Такой вод код:
(defun my-compose-region (beg end text)
(let ((ov (make-overlay beg end)))
(overlay-put ov 'display text)
(overlay-put ov 'modification-hooks
(list (lambda (ov _ _ _)
(delete-overlay ov))))))
(my-compose-region 1 10 "Oo")
delete-char: Wrong number of arguments: (lambda (ov _ _ _) (delete-overlay ov)), 5
Я меняю код на:
(defun my-compose-region (beg end text)
(let ((ov (make-overlay beg end)))
(overlay-put ov 'display text)
(overlay-put ov 'modification-hooks
(list (lambda (ov _ _ _ _) ; <- только здесь добавляю пятый аргумент
(delete-overlay ov))))))
delete-char: Wrong number of arguments: (lambda (ov _ _ _ _) (delete-overlay ov)), 4
Я могу написать вот так:
(defun my-compose-region (beg end text)
(let ((ov (make-overlay beg end)))
(overlay-put ov 'display text)
(overlay-put ov 'modification-hooks
(list (lambda (ov &rest unused)
(delete-overlay ov))))))