I find &AUX useful for setting global parameters, like:

(defun read-data (data-source &aux (*read-default-float-format* 'double-float)) ...)

I think it better expresses the change than in a LET* form or using WITH at the top of a LOOP.

Tom
----------------------------------------------------------------
Thomas M. Hermann
Odonata Research LLC
http://www.odonata-research.com/
http://www.linkedin.com/in/thomasmhermann


On Sat, Jun 11, 2011 at 6:03 AM, Didier Verna <didier@lrde.epita.fr> wrote:
Pascal Costanza wrote:

> - The more important reason is that I sometimes want to derive some
> value from an argument that is "very close" to the value of the
> original argument. Here is an example:

 I would go even farther than that. Sometimes, you want to slightly
frob the original argument and not use it anymore afterwards. In such
situations, you can even use the same variable name (one might consider
this either very stylized or very ugly ;-).


CL-USER> (defun foo (arg &aux (arg (1+ arg)))
          arg)
FOO
CL-USER> (foo 1)
2

--
Resistance is futile. You will be jazzimilated.

Scientific site:   http://www.lrde.epita.fr/~didier
Music (Jazz) site: http://www.didierverna.com

_______________________________________________
pro mailing list
pro@common-lisp.net
http://lists.common-lisp.net/cgi-bin/mailman/listinfo/pro