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,
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)
.
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.