Plaster

common-lisp
(defmacro define-a-kind-of-function (name value) `(defun ,name () ,value)) (defmacro define-my-functions-of-a-kind () `(progn ,@(loop :for i :from 1 :to 9 :collect `(define-a-kind-of-function ,(format nil "~:@(~:@R~)" i) ,i)))) (pprint (macroexpand-1 '(define-my-functions-of-a-kind))) (progn (define-a-kind-of-function "I" 1) (define-a-kind-of-function "II" 2) (define-a-kind-of-function "III" 3) (define-a-kind-of-function "IIII" 4) (define-a-kind-of-function "V" 5) (define-a-kind-of-function "VI" 6) (define-a-kind-of-function "VII" 7) (define-a-kind-of-function "VIII" 8) (define-a-kind-of-function "VIIII" 9))