On Sat, Jan 26, 2008 at 02:32:15PM -0800, [EMAIL PROTECTED] wrote:

Even I think I can answer that one......I'd guess none of those HAVE to be but
they are ONLY for efficiency reasons.  not isn't special because it always
has to evaluate its single argument.  (and X Y Z) ...if X false, no reason to
evaluate Y or Z.

I'd go even further and make the spec say they are NOT special forms.  But,
I'd let implementers CODE THEM as special forms for optimization reasons if it
never changed the output in anyway.

Don't forget about side effects.

   (if x  (set! foo y))

You really don't want the set happening when x isn't true.

David

--
[email protected]
http://www.kernel-panic.org/cgi-bin/mailman/listinfo/kplug-lpsg

Reply via email to