historical rationale? Neil Van Dyke (10 Apr 2006 20:58 UTC)
Re: historical rationale? Taylor R. Campbell (10 Apr 2006 22:27 UTC)
Re: historical rationale? Ben Goetter (10 Apr 2006 23:02 UTC)

Re: historical rationale? Ben Goetter 10 Apr 2006 23:02 UTC

Taylor R. Campbell wrote:
> I looked, by the way, into some old mail archives, dating back to
> 1983, and couldn't find any discussion of the rationale for =>.
 From MIT AI Memo 452 (RRS), p. 13:

[quote]
This COND is a superset of the MacLISP COND.  [...] The extension to the
MacLISP COND made in SCHEME is flagged by the atom =>.  [...]  In this
sitation the form /f/ following the => should have as its value a
function of one argument; if the predicate /p/ is non-NIL, this function
is determined and invoked on the value returne dby the predicate.  This
is useful for the common sutation encountered in LISP:

    (COND ((SETQ IT (GET X 'PROPERTY)) (HACK IT))
        ...)

which in SCHEME can be rendered without using a variable global to the COND:

    (COND ((GET X 'PROPERTY)
        => (LAMBDA (IT) (HACK IT)))
        ...)

or, in this specific instance, simply as:

    (COND ((GET X 'PROPERTY) => HACK)
        ...)

[end quote]

Steele and Sussman also present a variant of IF called TEST that works
similarly.