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

"DEFLET"?



   Date: Wed, 14 Sep 88 16:27:37 EDT
   From: Mitchell Wand <wand@corwin.ccs.northeastern.edu>

   Maybe the reason we're having such problems picking a name for this thing is
   that it was a bad abstraction in the first place.  While it is syntactically
   like LET, the binding it does is very different.

   The name seems to have arisen purely from the syntactic similarities of

   ((LAMBDA (id1 ...) body) val1 ...)
   and
   ((REC name (LAMBDA (id1 ...) body)) val1 ...)

Just a short hysterical note: it arose because of the similarities of

   ((NAMED-LAMBDA (<let-tag> id1 ...) body) val1 ...)
   and
   ((NAMED-LAMBDA (name id1 ...) body) val1 ...)

where NAMED-LAMBDA had (at that time) the REC semantics, and <let-tag>
was a special name which could not be produced by the MIT Scheme
reader.  As you can see, these two differed only in their name, thus
it seemed like a natural extension to LET.

While I won't argue for this syntax based on semantic similarities to
anonymous LET, I will argue that for terseness and readability it is
very good.  The initialization forms appear right up front, followed
by the body, and there are no extraneous keywords.