F# 4.0 Design Patterns
- This book provides a path if you are coming from imperative and object-oriented paradigms
- It will take you to an intermediate level of functional programming in very practical manner to write enterprise-quality idiomatic F# code
- Tackle complex computing problems with simple code by fully embracing the functional-first F# paradigm
- Packed full of practical coding examples to help you master F# programming and author optimal code
Following design patterns is a well-known approach to writing better programs that captures and reuses high-level abstractions that are common in many applications. This book will encourage you to develop an idiomatic F# coding skillset by fully embracing the functional-first F# paradigm. It will also help you harness this powerful instrument to write succinct, bug-free, and cross-platform code.
F# 4.0 Design Patterns will start off by helping you develop a functional way of thinking. We will show you how beneficial the functional-first paradigm is and how to use it to get the optimum results. The book will help you acquire the practical knowledge of the main functional design patterns, the relationship of which with the traditional Gang of Four set is not straightforward.
We will take you through pattern matching, immutable data types, and sequences in F#. We will also uncover advanced functional patterns, look at polymorphic functions, typical data crunching techniques, adjusting code through augmentation, and generalization. Lastly, we will take a look at the advanced techniques to equip you with everything you need to write flawless code.
What you will learn
- Acquire the practical knowledge to use the main functional design patterns
- Realign some imperative and object-oriented principles under the functional approach
- Develop your confidence in building and combining first-order and higher-order functions
- Learn to use core language pattern matching effectively
- Make use of native F# algebraic data types in place of custom-built classes
- Recognize and measure the difference in resource consumption between sequences and materialized data collections
- Navigate and use F# Core libraries with ease by seeing patterns behind specific library functions
- Master writing generic polymorphic code
About the Author
Gene Belitski is an accomplished professional software developer with a passion for functional programming. He is a proud representative of the fourth consecutive generation in a family of engineers.
In his professional career Gene was a member of the core development team at Multex.com, a start-up known for bringing Internet and PDF technologies to capital markets.
The author also spent a decade with Reuters, owning the application development for the collection and production of Reuters Consensus and Detail Estimates financial data consumed by quantitative hedge funds.
Currently with Jet.com Inc., Gene is enjoying hands-on development as a lead of the team building a line of business F# applications for their finance division.
He lives with his family on a rare tranquil backstreet of New York City between a park and a beach. In his spare time, Gene plays with code or reads books with his two feline sidekicks – the Turkish Angora siblings Cheri and Musya.
You can find Gene online on LinkedIn (https://www.linkedin.com/in/genebelitski) and StackOverflow (http://stackoverflow.com/users/917053/gene-belitski).
Gene occasionally blogs at https://infsharpmajor.wordpress.com and https://tech.jet.com. He is one of the founding members of F# Foundation (http://fsharp.org/)
Table of Contents
- Begin Thinking Functionally
- Dissecting F# Origins and Design
- Basic Functions
- Basic Pattern Matching
- Algebraic Data Types
- Sequences - The Core of Data Processing Patterns
- Advanced Techniques: Functions Revisited
- Data Crunching – Data Transformation Patterns
- More Data Crunching
- Type Augmentation and Generic Computations
- F# Expert Techniques
- F# and OOP Principles/Design Patterns
- Troubleshooting Functional Code