Formal comment #165 (defect) Rename named `let' Reported by: Mike Sperber Version: 5.92 Issue The fact that the convenient syntax for writing recursive procedures is part of `let' is a long-standing wart in the syntax of Scheme. It is unintuitive (it expands into `letrec', rather than a simpler form of `let), difficult to explain to newcomers to Scheme, and disconcerting to the casual reader. How to fix If the syntax needs to be integrated with one of the standard binding forms, it should be letrec', not let'. However, it would be much better to rename named let' to something else such as rec', `recur' or `recursive'. As this would break many existing Scheme programs, the report might introduce the separate form, and, to ease the transition, keep named `let' for now, either putting it into a separate library alongside (r6rs mutable-pairs) or at least marking it as deprecated and likely to disappear in a future revision of the report. RESPONSE: The named `let' has a more intuitive description than the comment suggests: it can be considered a way to name the lambda implicit in a `let' form. Its name refers to the fact that the bindings established by its clause have `let' semantics. It would therefore not be appropriate to base its name on `letrec', since a majority of the editors believe that this would create a misleading impression of the semantics of the . Given that there is a reasonable rationale for the named `let' as a variety of `let', the reasons for renaming this feature to some other name such as `recur' do not seem sufficiently strong. The comment will not be adopted.