2008-10-17 13 views

Respuesta

30

En primer lugar, no estoy seguro de que el nombramiento de su función t está ayudando como 't' se utiliza como truth value en Lisp.

Dicho esto, el siguiente código funciona para mí:

(defun test-func-1() "test-func-1" 
    (interactive "*") 
    (insert-string "testing callers")) 

(defun func-caller (callee) 
    "Execute callee" 
    (funcall callee)) 

(func-caller 'test-func-1) 

Tenga en cuenta el uso de 'funcall', lo que desencadena la llamada a la función.

+2

Sí, definitivamente debes evitar intentar usar los símbolos 't' y' nil' como nombres para cualquier cosa. (Excepto, por supuesto, para ellos mismos; evaluarlos produce el mismo símbolo.) – SamB

+0

La función 'func-caller' es redundante en este escenario, por supuesto, a menos que lo necesite para evaluar algún código adicional en cada llamada a dicha función . – phils

6

La nota al final de this page dice que puede citar funciones con #' en lugar de #' para indicar al compilador de bytes que el símbolo siempre nombra una función.

Cuestiones relacionadas