A Functional Pattern System for Object-Oriented Design

by Thomas Kühne

DescriptionTable of ContentsDetailsHashtagsReport an issue

Book Description

This book integrates the vital areas of object-orientation, functional programming, design patterns, and language design. The most important concepts from functional programming are captured with six design patterns: FUNCTION OBJECTS (Black-box behaviour parameterisation) LAZY OBJECTS (Evaluation-by-need semantics) VALUE OBJECTS (Immutable values) VOID OBJECTS (Abandoning null references) TRANSFOLD (Combining internal & external iteration) TRANSLATOR (Homomorphic mapping with generic functions). These patterns can be used with any object-oriented language to advance software design. The patterns form a system, i.e., a collaborating set of patterns.

In their "Related Patterns" sections the patterns refer to each other and to many other published design patterns. Each of the relevant areas (object-orientation, functional programming, design patterns) is introduced in the first part of the book. This part also compares the functional and object-oriented paradigms both in terms of concepts and on a calculus level. The second part presents the functional pattern system. This system should be beneficial to software practitioners since it integrates the functional paradigm into object-oriented software design. Hence, advantages which have been primarily available in functional languages can be used in object-oriented languages as well. Even when some functional concepts have been partially established in object-oriented software already, they can now be understood as specialised uses of more general function patterns. This practical aspect is complemented by a theoretical account of multi-paradigm language design. An evaluation of the pattern system for its implications on language design in the third part is concluded by proposing a new distribution of responsibilities between languages and their environments.

The book uses the Eiffel programming language to illustrate the patterns with running sample code. It includes a critical review of the Eiffel language in terms of its suitability as a functional pattern implementation language.

This open book is licensed under a Open Publication License (OPL). You can download A Functional Pattern System for Object-Oriented Design ebook for free in PDF format (2.2 MB).

Table of Contents

Part I
Chapter 1
Functional programming
Chapter 2
Chapter 3
Calculus comparison
Chapter 4
Conflict & Cohabitance
Chapter 5
Design Patterns
Part II
Pattern System
Chapter 6
Chapter 7
Function Object
Chapter 8
Lazy Object
Chapter 9
Value Object
Chapter 10
Chapter 11
Void Value
Chapter 12
Chapter 13
Part III
Language design
Chapter 14
Pattern Driven Language Design

Book Details

Computer Science
ISBN13 Digital
ISBN10 Digital
PDF Size
2.2 MB
Open Publication License

Related Books

Java, Java, Java
Functional and flexible, this guide takes an objects-first approach to Java programming and problem using games and puzzles. Offers independent introductions to both a command-line interface and a graphical user interface (GUI). Features coverage of Unified Modeling Language (UML), the industry-standard, object-oriented design tool. Illustrates key...
Object-oriented Programming in C#
This is a teaching material about object-oriented programming, illustrated with use of the programming language C#. It is assumed, as a prerequisite, that the readers have some knowledge about imperative programming, preferably knowledge about C. I believe that it is best to learn object-oriented programming after having learned and worked w...
Learning C#
C# is a general-purpose, modern and object-oriented programming language pronounced as "C sharp". It is an unofficial and free C# ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which is written by many hardworking individuals at Stack Overflow....
Rexx Programmer's Reference
Originally developed for mainframes but highly portable across platforms-from servers to desktops to handhelds-Rexx is an easy yet powerful scripting language that's widely used for rapid application development. Covers Rexx interpreters for specialized functions-object-oriented, mainframe, and handheld. There are 8 different free Rexx interp...
OOP - Learn Object Oriented Thinking and Programming
You can find a whole range of programming textbooks intended for complete beginners. However, this one is exceptional to certain extent. The whole textbook is designed as a record of the dialogue of the author with his daughter who wants to learn programming. The author endeavors not to explain the Java programming language to the readers, but to t...
Classical Object-Oriented Programming with ECMAScript
ECMAScript (more popularly known by the name "JavaScript") is the language of the web. In the decades past, it has been used to augment web pages with trivial features and obnoxious gimmicks. Today, the language is used to write full-featured web applications that rival modern desktop software in nearly every regard and has even expanded ...