Foreword

For the past couple of decades, object-oriented programming has dominated the industry, its ability to hide complexity and provide structure and intuition providing a major boost to software development.

Not all kinds of complexity submit willingly to the mechanisms of encapsulated shared state and virtual methods. Some domains of computation, analysis, and transformation were not much helped by objects, and, looming bigger every day, the demand for concurrency is placing new pressure on the object-oriented paradigm.

From an obscure existence in academic institutions and research labs, functional and declarative techniques have gradually crept into mainstream languages to counter those challenges. In C#, for instance, we added generics, ...

Get Real-World Functional Programming now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.