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