Plaster
New
List
Login
text
default
anonymous
2022.02.07 15:53:03
(defmacro define-interface (name lambda-list &optional docstring) (let ((name-with-client (concatenate-and-intern name "-WITH-CLIENT")) (apply-call-args (translate-ordinary-lambda-list-to-apply-args lambda-list))) `(progn (defun ,name ,lambda-list ,docstring (let ((client *client*)) (apply (function ,name-with-client) client ,apply-call-args))) (defgeneric ,name-with-client (client ,@lambda-list) (:documentation ,docstring)))))
Raw
Annotate
Repaste
Edit