[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
No Subject
I share Will's reservations about relaxing the restrictions on LETREC.
The only way I can see that makes the relaxation meaningful is to
change Scheme to a non-strict language, in which case, of course, ALL
restrictions can be removed. But I doubt if people will like that
idea...
I seem to recall someone mentioning that dependency analysis and
re-ordering of equations is used in functional programming languages.
Let me clarify this: it is used primarily to improve efficiency, does
not change the dynamic semantics of the language, but DOES change the
static semantics. In particular, type-correctness is impacted, by
allowing a broader class of well-typed programs under the
Hindley-Milner type system. This is viewed as a feature, but is
subject to the same criticism that Will mentions -- if a program is
rejected as ill-typed the user may have trouble figuring out how to
fix it. However this is not viewed as a serious problem because:
1) such kinds of type errors are subtle even without the re-ordering!
2) the re-ordering actually LESSONS the likelihood of such an error.
Neither of these arguments can be made in the case of LETREC.
-Paul
-------