Opened 12 years ago
Closed 12 years ago
#1078 closed defect (worksforme)
letrec* can be done as Chicken letrec
| Reported by: | johnwcowan | Owned by: | |
|---|---|---|---|
| Priority: | major | Milestone: | someday | 
| Component: | unknown | Version: | 4.8.x | 
| Keywords: | Cc: | ||
| Estimated difficulty: | 
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))))
    Note: See
        TracTickets for help on using
        tickets.
    

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.