Next: , Up: compiler dircalls   [Index]


17.9.1 Examples of clambda integration

By definition, a “direct closure application” like:

((lambda (x) x) 123)

can be transformed to:

   (let ((x 123)) x)

in which the operator lambda form is integrated; so it can be converted to low level operations that more efficiently implement the binding; direct calls optimisation attempts to perform such integration. Notice that in the case:

((case-lambda
   ((x) x)
   ((x y) y))
 123)

the integration yields:

(let ((x 123)) x)

and the clause with two arguments is just discarded and never compiled.