Say you want to both filter out most elements from a list and also make
sure that the remaining elements are sorted.
(apply < (filter some-predicate original-list))
If (<) didn't evaluate to #t, then you'd have to put code in there to
check the length of the value you get from filter, which makes things
uglier. Also, having (<) => #t doesn't hurt anything.
Bill Schottstaedt wrote:
There are actually more problems in that area; for example:
guile> (< 2 1 1.0+3.0i)
#f
which perhaps should be an error also. My druthers for the
one arg case is to simply disallow it -- why does Guile support
stuff like:
guile> (<)
#t