Plaster

text
(defmacro defun-with-symbol-list ((uri name) normal-func-args) (let ((x (gensym)) (y (gensym))) `(defun ,name ,normal-func-args (let ((,x (defun-args-to-strings ',normal-func-args)) (,y (extract-passed-var-no-nested ',normal-func-args))) (flexi-streams:octets-to-string (cl-json:decode-json-from-source (send ,uri (cl-json:encode-json (list-to-alist (join-two-lists x y)))))))))) CLDAPI> (macroexpand-1 '(defun-with-symbol-list ((comp-str "/channels/" channel-id) beep) (&key params cat))) (DEFUN BEEP (&KEY PARAMS CAT) (LET ((#:G739 (DEFUN-ARGS-TO-STRINGS '(&KEY PARAMS CAT))) (#:G740 (EXTRACT-PASSED-VAR-NO-NESTED '(&KEY PARAMS CAT)))) (FLEXI-STREAMS:OCTETS-TO-STRING (JSON:DECODE-JSON-FROM-SOURCE (SEND (COMP-STR "/channels/" CHANNEL-ID) (JSON:ENCODE-JSON (LIST-TO-ALIST (JOIN-TWO-LISTS X Y)))))))) T