Date: Mon, 20 Oct 2008 20:09:51 -0700
   From: Thomas Lord <[EMAIL PROTECTED]>
   Cc: [email protected]

   Alan Bawden wrote:
   > Stop being so argumentative 
   >   

   I'm sorry I made a dumb mistake in my example but please
   don't attack my character as a result.

Actually, it was a very interesting mistake.  I thought the way in which
your proposed transformation failed was very enlightening.  My cranky
reaction was not because your original mistake was "dumb", but because when
I pointed out the error, you continued to argue without realizing that I
had in fact pointed out an error.

   Here's a better, simpler, corrected example:

   (apply = x)        ; true when the elements of x
                      ; are all equal
   <=>

   (let ((xv x))
                                 ; the elements of x are all =
     (not                        ; if it is false that
       (exists                   ; there exists
         (lambda (x0)            ; some element of x ("x0")
           (exists               ; such that for that x0 there exists
             (lambda (x1)        ; another element of x ("x1")
               (not              ; where it is not the case that
                 (= x0 x1)))     ; those elements are equal
              xv))
          xv)))

   Now, to be clear, I think that second transformation is
   also a bogus transformation because my opinion is that
   (apply = '(q)) ought to be an error, not #t -- but if we stipulate
   that "x" denotes a list of numbers then the transformation
   is not bogus.

For `=' it is indeed not bogus.  Unfortunately, substituting `<' for `=' in
the above equivalence results in something that -is- bogus.  So while you
may be able to use this example to argue that `(=)' should return #T, you
can not use it to argue that `(<)' should return #T.

_______________________________________________
r6rs-discuss mailing list
[email protected]
http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss

Reply via email to