(defun make-table (&rest symbols)
(pairlis symbols (mapcar #'symbol-function symbols)))
(format t "~(~{~&~a~}~)"
(make-table '+ 'cons 'make-table))
(defmacro make-table-macro (&rest symbols)
`(list ,@(mapcar (lambda (symbol) `(cons ',symbol #',symbol)) symbols)))
(format t "~(~%~%macroexpand: ~a~%~{~%~a~}~)"
(macroexpand '#1=(make-table-macro + - *))
#1#)
KGRlZnVuIG1ha2UtdGFibGUgKCZyZXN0IHN5bWJvbHMpCiAgKHBhaXJsaXMgc3ltYm9scyAobWFwY2FyICMnc3ltYm9sLWZ1bmN0aW9uIHN5bWJvbHMpKSkKCihmb3JtYXQgdCAifih+e34mfmF+fX4pIiAKICAobWFrZS10YWJsZSAnKyAnY29ucyAnbWFrZS10YWJsZSkpCgooZGVmbWFjcm8gbWFrZS10YWJsZS1tYWNybyAoJnJlc3Qgc3ltYm9scykKICBgKGxpc3QgLEAobWFwY2FyIChsYW1iZGEgKHN5bWJvbCkgYChjb25zICcsc3ltYm9sICMnLHN5bWJvbCkpIHN5bWJvbHMpKSkKCihmb3JtYXQgdCAifih+JX4lbWFjcm9leHBhbmQ6IH5hfiV+e34lfmF+fX4pIgogIChtYWNyb2V4cGFuZCAnIzE9KG1ha2UtdGFibGUtbWFjcm8gKyAtICopKQogICMxIyk=