Cómo crear una función temporal en Emacs Lisp

Estoy haciendo algunas llamadas tediosas a un montón de funciones, pero los parámetros se determinarán en tiempo de ejecución. Escribí una función simple para mantener mi código SECO pero no es necesario darle un nombre. No uso esta función en ningún otro lado.

Estoy tratando de hacerlo como lo haría en Scheme, pero obtengo unvoid-function error:

(let ((do-work (lambda (x y z)
                  (do-x x)
                  (do-y y)
                  ;; etc
                  )))
  (cond (test-1 (do-work 'a 'b 'c))
        (test-2 (do-work 'i 'j 'k))))

Podría meterlo todo en unapply (p.ej.,(apply (lambda ...) (cond ...))) pero eso no es muy legible. ¿Hay una mejor manera?

Respuestas a la pregunta(3)

Su respuesta a la pregunta