Andrew Lentvorski wrote: > [EMAIL PROTECTED] wrote: >> On Sat, Jan 26, 2008 at 01:41:18AM -0800, Andrew Lentvorski wrote: >>> [EMAIL PROTECTED] wrote: >>>> If I'm not mistaken, what makes a special form to be special is that >>>> evaluation happens abnormally.... >>> Why are "and" and "or" special forms yet "not" isn't? >> >> Even I think I can answer that one......I'd guess none of those HAVE > > You guess wrong. > > The point of "if", "and", and "or" is sometimes to "shield" against an > operation even in purely functional contexts. > > (and (not (= a 0)) (/ n a)) > > Therefore, you need *some* construct that does not always evaluate all > of its arguments. > > That construct *must be* a special form. In a purely functional language, you'd likely have lazy evaluation, which would avoid the above problem (IO is still a problem though).
--Chris -- [email protected] http://www.kernel-panic.org/cgi-bin/mailman/listinfo/kplug-lpsg
