Ingvar | 3 Dec 2009 12:47
Favicon

Re: [small-cl-src] Small, maybe useful hack.

> (defmacro funwrap (form)
>   (flet ((is-arg (sym)
>            (ignore-errors
>              (and (char=3D (char (symbol-name sym) 0) #\_)
>                   (parse-integer (symbol-name sym) :start 1)))))
>     (let ((syms (loop for arg in form
>                      if (is-arg arg)
>                      collect arg)))
>       (let ((ordered-syms
>              (mapcar #'cdr
>                      (sort (loop for sym in syms
>                               collect (cons (parse-integer (symbol-name sym)
>                                                            :start 1)
>                                             sym))
>                            #'<
>                            :key #'car))))
>         `(lambda ,syms ,form)))))

Ooops! That should actually be:
          `(lambda ,ordered-syms ,form)

//Ingvar

Gmane