3 Dec 2009 12:47
Re: [small-cl-src] Small, maybe useful hack.
Ingvar <ingvar <at> hexapodia.net>
2009-12-03 11:47:50 GMT
2009-12-03 11:47:50 GMT
> (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
RSS Feed