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

[Rees: TC bug - CERROR]



    From Rees:  I think the compiler would do better ...  if you used
    LET's where possible (that is, where there's no recursion involved)
    [instead of LABELS].

What is and what will be the status of LABELS in T?  Are the current
problems with it in the compiler indicative of second-class status
(like Lisp's labelled LAMBDAs), or just growing pains in handling a
useful but tricky construct?

I had assumed that LABELS was in general a good thing, not an exotic
form, and that stylistically

    (LABELS (((F1 ...) ...)
             ((F2 ...) ...)
             ...
             ((FN ...) ...))
     ...)

was preferrable to

    (LET ((F1 (LAMBDA (...) ...)))
     (LET ((F2 (LAMBDA (...) ...)))
      ...
         (LET ((FN (LAMBDA (...) ...)))
          ... ))...)

Although the latter might be more efficient and it does say what depends
on what, I find the former easier to read, partly because it's not
so nested and partly because LABELS supports a function-call-pattern
syntax and LET doesn't (does it?  How does

    (LET (((fn -args-) -exps-) ...)
       ...)

look to people?).

So, what is the status of LABELS supposed to be?
-------