Subject: Re: A defvars macro
From: rpw3@rpw3.org (Rob Warnock)
Date: Sun, 18 Jan 2009 20:21:18 -0600
Newsgroups: comp.lang.lisp
Message-ID: <JrqdnTC7WdwDfu7UnZ2dnUVZ_gOdnZ2d@speakeasy.net>
Tamas K Papp  <tkpapp@gmail.com> wrote:
+---------------
| Rock wrote:
| > I wrote a very simple little macro:
...
| > that's supposed to allow me to do something like this:
| > (defvars (*a* *b*) ((sin 1) (complex 3 4)))
...
| If it does what you want, than I guess it is OK.  I would make it
| parse pairs though, eg
| (defvars *a* (sin 1)
| 	   *b* (complex 3 4))
+---------------

Where are you going to put the documentation strings?
You'd need something like this to cover all the cases:

    (defvars (*x*)                ; No initial value.
	     (*a* (sin 1))        ; A value, but no doc string.
	     (*b* (complex 3 4))) "A point on the plane." ; Both.

And given that, I really don't see any advantage over the default:

    (defvar *x*)               ; No initial value.
    (defvar *a* (sin 1))       ; A value, but no doc string.
    (defvar *b* (complex 3 4)) "A point on the plane." ; Both.


-Rob

-----
Rob Warnock			<rpw3@rpw3.org>
627 26th Avenue			<URL:http://rpw3.org/>
San Mateo, CA 94403		(650)572-2607