Lecture overview -- Keyboard shortcut: 'u'  Previous page: An example with <span>let*</span> -- Keyboard shortcut: 'p'  Next page: An implementation of letrec -- Keyboard shortcut: 'n'  Lecture notes - all slides together  Annotated slide -- Keyboard shortcut: 't'  Alphabetic index  Help page about these notes  Course home    Introduction to Functional Programming in Scheme - slide 41 : 49

The letrec namebinding construct
The letrec name binding construct allows for definition of mutually recursive functions
(letrec ((n<sub>1</sub> e<sub>1</sub>) ... (n<sub>k</sub> e<sub>k</sub>)) body-expr)
(letrec ((f1 (lambda (...) ... (f2 ...)))
         (f2 (lambda (...) ... (f1 ...)))
        )
  body-expr)