[r6rs-discuss] Comparison procedures' number of arguments
Jon Wilson
j85wilson at fastmail.fm
Sun Oct 19 12:41:50 EDT 2008
Hi,
Andre van Tonder wrote:
> I agree. It seems clear that the base cases for /all/ of these should be #t.
> It would be silly if, for example, whether a sequence is increasing could
> be changed from #t to #f by removing the last element.
So here we would like to define the thunk case as a sort of limit. Take
an increasing sequence and remove elements until it is gone:
(< 1 2 3 4)
(< 1 3 4)
(< 1 3)
(< 3)
(<)
all => #t
On the other hand, take a decreasing sequence
(< 4 3 2 1)
(< 3 2 1)
(< 3 2)
(< 2)
(<)
all => #f?
Is it less silly if, for example, whether a sequence is increasing could
be changed from #f to #t by removing the last element?
> Stated another way, all
> of these are really an intersection (AND) of conditions, and the base (0
> argument) case for AND is #t.
That is,
(< 1 2 3) is equivalent to
(and (< 1 2) (< 2 3)).
I think this is a better argument. Even if one makes the argument that
it is instead
(not (or (> 1 2) (> 2 3))),
one still gets #t as the base case.
Regards,
Jon
More information about the r6rs-discuss
mailing list