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








Reply via email to