[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Multiple values for R4RS.

   Date: Wed, 23 Aug 89 11:27:42 -0500
   From: R. Kent Dybvig <dyb@iuvax.cs.indiana.edu>

      Your argument seems to be that ACCEPTS? is an ill-defined concept ...

   My argument is that "accepts?" is virtually meaningless, since it is
   a superficial property of the outermost level of the procedure, and there
   is no way to extend it further in.  If "accepts?" returns #t, so what?

(Here is yet another chapter in the war between the theoreticians and
the engineers.)

Because the proposed semantics of `accepts?' does not return the
"correct" answer 100% of the time, Kent is unwilling to accept it.
Indeed, it is not possible to determine the "correct" answer because
of the halting problem.  Yet at the same time, the proposed semantics
is sufficient to solve what Jinx sees as a real problem.

My summary of these arguments is that Kent is rejecting `accepts?'
because it doesn't satisfy a specification which is known to be
impossible to satisfy.  I believe this is an unreasonable position,
and we should move on to a more substantive argument.  I've heard two
of these:

1. `accepts?' is not very useful.  (I agree with Jinx, having used MIT
Scheme's version of this predicate for about a year or so.  In
practice, I find that the counterexamples Kent has presented are not
too common.)

2. `accepts?' places an unreasonable burden on the implementor.  (I
concede that this -might- be true, but that is a judgment of the
usefulness of `accepts?' as well as its implementation cost.)