How do you test your application design or architecture for viability? By quick iteration preferably, and without locking everything down in the early phases of a project. Functional programming allows creating executable high-level domain models very quickly, allowing developers and customers alike to explore their properties and see how well they fit the intended domain. This talk shows how it's done, with examples from several industrial projects.
Target Audience: developers, architects, decision makers
Prerequisites: basic software development experience
Level: Practicing
Extended Abstract
High-level domain models are easy to create using functional programming, so much that it's often easiest to express them directly in code without a distinct modelling step. Models drawn up in functional programming benefit from several key advantages not generally found in traditional OO projects: Libraries with higher-order abstractions (such as monads) enable embedded domain-specific languages. The low notational overhead of FP keeps the process going quickly. Immutability keeps programmers from getting bogged down choreographing state changes. These (and other benefits of FP) allow developers to test the waters quickly. Furthermore, models evolve into deployable code seamlessly, and the traditionally low coupling in FP keeps the architecture elastic as the system evolves.