[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
-------