Drawing Programs: The Theory and Practice of Schematic Functional Programming describes a diagrammatic (schematic) approach to programming. It introduces a sophisticated tool for programmers who would rather work with diagrams than with text. The language is a complete functional language that has evolved into a representation scheme that is unique. The result is a simple coherent description of the process of modelling with the computer. The experience of using this tool is introduced gradually with examples, small projects and exercises. The new computational theory behind the tool is interspersed between these practical descriptions so that the reasons for the activity can be understood and the activity, in turn, illustrates some elements of the theory Access to the tool, its source code and a set of examples that range from the simple to the complex is free (see www.springer.com/978-1-84882-617-5). A description of the tool’s construction and how it may be extended is also given. The authors’ experience with undergraduates and graduates who have the understanding and skill of a functional language learnt through using schema have also shown an enhanced ability to program in other computer languages. Readers are provided with a set of concepts that will ensure a good robust program design and, what is more important, a path to error free programming. Drawing The Theory and Practice of Schematic Functional Programming describes a diagrammatic (schematic) approach to programming. It introduces a sophisticated tool for programmers who would rather work with diagrams than with text. The language is a complete functional language that has evolved into a representation scheme that is unique. The result is a simple coherent description of the process of modelling with the computer. The experience of using this tool is introduced gradually with examples, small projects and exercises. The new computational theory behind the tool is interspersed between these practical descriptions so that the reasons for the activity can be understood and the activity, in turn, illustrates some elements of the theory Access to the tool, its source code and a set of examples that range from the simple to the complex is free (see (http://www.springer.com/978-1-84882-617-5) www.springer.com/978-1-84882-617-5 ). A description of the tools construction and how it may be extended is also given. The authors experience with undergraduates and graduates who have the understanding and skill of a functional language learnt through using schema have also shown an enhanced ability to program in other computer languages. Readers are provided with a set of concepts that will ensure a good robust program design and, what is more important, a path to error free programming. Front Matter....Pages i-xvi Why Schematic Functional Programming?....Pages 1-34 Making Changes....Pages 35-72 In Pursuit of Elegance....Pages 73-109 Mind Maps TM and Mechanisms....Pages 111-147 Functional Thinking....Pages 149-183 Thinking Practically....Pages 185-221 Side Effect Programming and Schematic Design....Pages 223-266 Adult Things....Pages 267-300 Higher-Order Programming and Lower Level Activity....Pages 301-341 Programming with Uncertainty: Theories, Models and Programs....Pages 343-379 Back Matter....Pages 381-395 Schematic functional programming uses diagrams, this book is the first to demonstrate a professional programming language based on a combination of both schema and functions Describes a schematic functional program development environment that has been built to provide all the tools, support and mechanisms a systems or program designer needs to make functional programs creatively Provides free access to ClarityPro software and the interpreter ClarityLite This authoritative book presents a clear introduction to the fast developing field of functional programming. It contains a detailed explanation of implementation techniques and a state-of-the-art account of optimization. The authors show how functional languages are more concise than imperative languages and exhibit certain properties that make them particularly powerful for the development of reliable, easy-to-understand software. Book by Field, Anthony J., Harrison, Peter