Both CL and Scheme define (and)
to return t
(or #t
) with no arguments.
I'm trying to understand the rationale for this. My naive assumption is that an empty set is false, and passing in zero arguments feels like passing in nothing that can be true.
Edit: clojure follows the same convention. I must be missing some basic Lisp assumption.