List of Tables

3.1 Opulus syntax 46
3.2 Opulus BNF 47
3.3 Translation of Opulus to l-calculus 48
3.4 Translation of l-calculus to Opulus 50
3.5 Complexity of Opulus in the l-calculus 52
3.6 Complexity of l-calculus in Opulus 52

4.1 Criteria to evaluate cook and recipe combination 60
4.2 Decomposition matrix 65
4.3 Sensitivity of decomposition types 65

5.1 Facets of "pattern" 71
5.2 Promise of design patterns 76

6.1 Functional pattern spectrum 90
6.2 Language levels 91
6.3 Functional pattern system 92

10.1 External versus internal iteration 167
10.2 Transfold's arguments 171

12.1 Simplifications possible while translating 209

13.1 Benefits of the functional pattern design example 226

14.1 Pattern implications on language design 250
14.2 Tiles with object-oriented and functional dimensions 253
14.3 Concrete types with implementation and interface views 254