Summary

letrec* can be done as Chicken letrec

Metadata

Description

Discussion on scheme-reports has clarified that implementing `letrec` sequentially (i.e. as `letrec*`), which is what Chicken does, is allowed by R7RS. Therefore, for R7RS compatibility, all that is needed is to expose `letrec*` as equivalent to `letrec`:

 (define-syntax letrec*
   (syntax-rules ()
     ((letrec* bindings . body) (letrec bindings . body))))

Changes and comments

[2013-12-01 19:45:51 UTC] sjamaan changed status from new to closed

[2013-12-01 19:45:51 UTC] sjamaan set resolution to worksforme

[2013-12-01 19:45:51 UTC] sjamaan wrote:

Thanks for pointing this out. If we're unable to solve the kanren issue (#1068) we might do this. Until we've figured out the cause of that one, I prefer to keep it the way it is, it encourages a more portable programming style.