[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ] |  |  |  |  | [Top] | [Contents] | [Index] | [ ? ]

#### 2.7.9.1 Recur

A generalization of the form denoted by `meta` in `silly` is recognized by the virtual machine and allows a slightly more efficient encoding of recursive applications. An expression `recur p` has the representation indicated by this theorem,

T15

  [[`recur`]] `p` = `(((nil,p),nil),nil)`

which implies that [[`meta`]] = [[`recur`]] `(nil,nil)`.

If `p` is non-`nil`, a tree of the form [[`recur`]] `p` is interpreted as follows. Note that P4 is equivalent to the special case of this property for which `p` is `(nil,nil)`.

P14

  ([[`recur`]] `p`) `x` = [[`meta`]] ([[`field`]] `p`) `x`

The rationale is that `meta` would very frequently be composed with a deconstruction `field p`, so the virtual machine saves some time and space by allowing the two of them to be encoded in a smaller tree with the combined meaning.

This document was generated on November 8, 2012 using texi2html 1.82.