[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
An alternative to ACCEPTS?
Posted-From: The MITRE Corp., Bedford, MA
X-Alternate-Route: user%node@mbunix.mitre.org
Posted-Date: Fri, 01 Sep 89 10:41:58 EDT
From: ramsdell@linus.mitre.org
Date: Fri, 01 Sep 89 10:41:58 EDT
[This is not part of the multiple values compromise.]
As an alternative to providing ACCEPTS?, maybe we should simply
provide a way of generating truncating continuations. Suppose we
provided a procedure like CALL-WITH-CURRENT-CONTINUATION, except that
if the escape procedure generated by CALL-WITH-CURRENT-CONTINUATION
accepts exactly n arguments, the new procedure generates an escape
procedure which will accept n or more arguments, and ignore the extra
ones. The advantage of this approach is that implementations are only
required to be able to compute the arity of escape procedures, not all
procedures. Here is an example of its use:
(define (quotient-and-maybe-remainder n1 n2)
(call-with-truncating-continuation
(lambda (k)
(let* ((q (quotient n1 n2))
(r (- n1 (* q n2))))
(k q r)))))
(quotient-and-maybe-remainder 1 1) => 1
John
I would be unhappy with a special mechanism that handles only half of
the interesting cases. It virtually guarantees that no mechanism
which handles the entire problem will be adopted in the foreseeable
future. This is particularly true in this case in which their is no
natural extension of the special purpose mechanism to a more general one.
-------------------------------------------------------------------------------
Morry Katz
katz@polya.stanford.edu
-------------------------------------------------------------------------------