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

Re: expansion of LETREC (hmmm)



    ...they  
  felt that LET, LET* and LETREC formed (or should form) a linear
  sequence, each more powerful (in a sense) than the last.

I think that that is wrong.  LET is more powerful than LET* because
one can make LET* by nesting LETs but you cannot make LET easily from
LET*.  Sequential methods are often more convenient than parallel
ones, but they are inessential.  On the other hand, your
implementation of LETREC:

   (letrec ((x v) ...) e ...)
     =>
       (let ((x 'any) ...) (set! x v) ... e ...)

certainly looks pretty good to me.  The question is whether we want to
specify the order of assignment as being the same as the order of the
expressions in the LETREC.  I see the same problems arising with
internal definitions (being just a syntax for a LETREC form).  I
suppose that I can be moved either way.
-------