Tor-björn Claesson <tclaes...@gmail.com> writes: > (defun org-cite-basic-follow--setup (_) > (transient-parse-suffixes > 'org-cite-basic-follow > (cl-map 'vector (lambda (group) > (cl-map 'vector (lambda (suffix-spec)
This is getting complex enough that you can split out this lambda into a dedicated private function. > (pcase suffix-spec > ((and (pred stringp) label) > label) > (`(,key ,desc (,fn !citation !prefix)) I think we can do yet better: `(,key ,desc (,fn . ,fn-args) . ,other) Here, `(,a . ,b) is matching a list with 1+ elements, with b collecting the cdr of the list. Once we have fn-args, we can simply map over it and search for '!citation or '!prefix symbols, replacing them with appropriate values. The final return value will be (using backquote-style list syntax: 10.4 Backquote in Elisp manual): `(,key ,desc (,fn ,@processed-args) ,@other) -- Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at <https://orgmode.org/>. Support Org development at <https://liberapay.com/org-mode>, or support my work at <https://liberapay.com/yantar92>