On Thu, 2008-10-23 at 16:04 -0700, Ken Dickey wrote: > On Thursday 23 October 2008 15:42:59 Ray Dillinger wrote: > > I've assumed that the predicates are true *unless* there is a pair > > in sequence that violates the condition, because that seems to me > > the obvious and only reasonable way for them to be defined. > > Assuming a condition is true without requiring existence is something one > should do very carefully. It would seem much more natural to prove > properties of entities that exist than for those that don't exist.
It seems to me that if you accept (and) => #t then you should accept (<) and (< x) => #t. Your argument against (<) => #t applies equally to (and) => #t -- there are no arguments so how can nothing all be true? (< x ...) is saying "are x[i] < x[i+1] and ... all true?". Your argument against (< x) => #t applies to (and x) -- why is "and" needed for only one argument? Both (<) and (< x) correspond to (and) -- there is nothing false so it's true, similar to how we consider not-#f to be true. Do you agree that (and) => #t and (and x) => x is useful and sensical for the plethora of ways it is used in practice? One of my early epiphanies when learning Scheme was to see how awesomely, simply, and safely "and", "or", and "truth" can be used, and a major part of their usefulness and sensicalness are the zero- and one-argument cases. I see "<" and friends as an abstraction over "and" and so they should fit in with how "and", "or", and "truth" are used. Best, -- : Derick ---------------------------------------------------------------- _______________________________________________ r6rs-discuss mailing list [email protected] http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss
