¿Cuál es la forma idiomática de implementar callbacks polimórficos en elisp?Devolución de llamada polimórfica en Emacs/Elisp
Específicamente, supongamos que tengo un modo menor con una función que realiza una determinada operación y luego invoca otra función. Esta segunda función debe tener una implementación diferente dependiendo de si el búfer actual contiene un archivo C++ o un archivo Java.
Alternativamente, supongamos que quiero sobrecargar variables en lugar de funciones. Por ejemplo, deseo invocar algún ejecutable externo, y uno de los argumentos que se le pasan difiere dependiendo de si el búfer actual tiene un archivo C++ o un archivo Java. Quiero ser capaz de construir la línea de comando en una función genérica y sustituir el argumento en función del contenido del búfer. ¿Es make-variable-buffer-local
el enfoque correcto? ¿En qué punto (y por qué mecanismo) se supone inicialmente que se establecerán estas variables locales?
Me he dado cuenta de que 'make-variable-buffer-local' y' funcall' es el enfoque adoptado con 'indent-line-function', entre otros. – Ray