Nestade backquoteuttryck är roliga.  Jag har nog aldrig haft anledning
att skriva ,@', förut.

(defun map-flet-subforms (bindings body)
  (flet ((map-lambda-list (lambda-list)
           (mapcar (lambda (arg)
                     (destructuring-case arg
                       ((x y . z)       ``(,',x ,(%map ,y) ,@',z))
                       (x               `',x)))
                   lambda-list)))
    ``(flet (,,@(mapcar
                 (lambda (binding)
                   (destructuring-bind (name lambda-list . body) binding
                     ``(,',name (,,@(map-lambda-list lambda-list))
                        ,,@(mapcar (lambda (x) `(%map ,x)) body))))
                 bindings))
       ,,@(mapcar (lambda (x) `(%map ,x)) body))))

_______________________________________________
Lisp mailing list
Lisp@lisp.se
http://mailman.nocrew.org/cgi-bin/mailman/listinfo/lisp

Till