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

SRFI 31 procedure vs. named-lambda (2)

This page is part of the web mail archives of SRFI 31 from before July 7th, 2015. The new archives for SRFI 31 contain all messages, not just those from before July 7th, 2015.



   Date: Fri, 31 May 2002 11:38:47 +0200
   From: "Dr. M. Luedde" <Mirko.Luedde@xxxxxxxxxxxx>

   My point of view by now is the following.

     - MIT Scheme's `named-lambda' does not provide what SRFI-31 is
       looking for and it does so by will, not by accident.

Actually, it used to.  But we changed it long ago as it was believed
to be confusing.

     - R2RS Scheme's `named-lambda' probably didn't either.

R2RS defined NAMED-LAMBDA to bind its name as a recursive reference to
the procedure:

http://www.swiss.ai.mit.edu/ftpdir/scheme-mail/HTML/rrrs-1984/msg00013.html

      And even if it did, it's not in the Reports anymore for
      minimalistic reasons.

There was a great deal of discussion of this point, which led to the
decision to drop NAMED-LAMBDA and REC from R3RS.  It wasn't purely on
the grounds of minimalism.  See the archives at

http://www.swiss.ai.mit.edu/ftpdir/scheme-mail/HTML/rrrs-1986/threads.html

      In our case this sort of minimalism (which cannot be the
      ultimate goal anyway) contradicts another important principle,
      namely that of separation of concerns - stateless vs. imperative
      programming.

I'm not sure how this factors into it.  You can always use LETREC to
achieve the same result, and it's stateless.

   In conclusion I believe that `procedure' fills in a gap that obviously
   exists at present and it does neither contradict any of Scheme's
   principles, nor any previous decisions of Scheme's designers and
   implementors.

Interestingly, there was a proposal during the 1986 discussions to
rename REC as PROCEDURE.  This was shot down for a variety of reasons.