Chapter 1. An Introduction to Orc

1.1. Simple Expressions
1.2. Complex Expressions
1.3. Data Structures
1.4. Functions

An Orc program is an expression. Complex Orc expressions are built up recursively from simpler expressions. Orc expressions are executed; an execution may interact with external services, and publish some number of values (possibly zero). Publishing a value is similar to returning a value with a return statement in an imperative language, or evaluating an expression in a functional language, except that an execution may publish many times, at different times, or might not publish at all. An expression which does not publish is called silent.

An execution halts when it is finished; it will not interact with any more services, publish any more values, or have any other effects.

Different executions of the same expression may have completely different behaviors; they may call different services, may receive different responses from the same site, and may publish different values.