Lecture overview -- Keyboard shortcut: 'u'  Previous page: Recursion versus iteration -- Keyboard shortcut: 'p'  Next page: Example of recursion: <span>number-interval</span> -- Keyboard shortcut: 'n'  Lecture notes - all slides together  Annotated slide -- Keyboard shortcut: 't'  Alphabetic index  Help page about these notes  Course home    Recursion and Higher-order Functions - slide 4 : 35

Tail Calls

A tail call of f in g occurs if g returns the result of f directly

In Scheme, tail calls must be implemented efficiently as jumps - the stack frame of g is discarded when f is called

Guy Steele: Tail calls are GOTOs with parameters

(define (g ...)
  ....
  (f ...))
tail-call-examples.scm
Example of tail calls and non tail calls.