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

#### 2.7.4.3 Standard Library

`silly` programs may be linked with library modules, which consist of `silly` source text to be concatenated with the user program prior to the preprocessing phase. Most `silly` programs are linked with the standard `silly` prelude, which contains the following declarations among others.

    nil           = ()
    identity      = (nil,(nil,nil))
    left          = (nil,((nil,nil),nil))
    right         = (nil,(nil,(nil,nil)))
    meta          = (((nil,(nil,nil)),nil),nil)
    constant_nil  = ((nil,nil),nil)
    couple        = ((((left,nil),constant_nil),nil),right)
    compose       = couple(identity,constant_nil)
    constant      = couple(couple(constant_nil,identity),constant_nil)
    conditional   =
       couple(couple(left,compose(left,right)),compose(right,right))

There is a close correspondence between these declarations and the properties described in A Minimal Set of Properties. A fitting analogy would be that the properties of the operator specify the virtual machine instruction set in a language independent way, and the `silly` library defines the instruction mnemonics for a virtual assembly language. The relationship of some mnemonics to their corresponding instructions may be less clear than that of others, so they are all discussed next.

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