Subject: conflicts between nset and other stuff in Maxima
From: Stavros Macrakis
Date: Thu, 17 Feb 2005 20:17:19 -0500
The current definition of $every is very peculiar -- I would say
wrong. I wonder if anyone depends on it. My vote would be to
deprecate it... (since taking it out entirely would cause screams).
In a very un-Maxima-like way, it treats all non-FALSE values as TRUE.
This is Lisp semantics; Maxima does not do this -- it gives an error
when it finds a non-boolean where it expects a boolean: if 3..., 3 and
4, while 1....
Secondly, every([...]) is equivalent to every(...). This is
non-uniform, giving rise to bizarreries like every([]) => FALSE while
every([],[]) => TRUE.
Third, every() gives an error. Why? Shouldn't it give TRUE, just like "and"()?
Fourth, every([]) gives FALSE. To be consistent with logic, it should
give TRUE. To be consistent with every(), it should give an error.