Book Image

F# 4.0 Design Patterns

By : Gene Belitski
Book Image

F# 4.0 Design Patterns

By: Gene Belitski

Overview of this book

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.
Table of Contents (20 chapters)
F# 4.0 Design Patterns
Credits
About the Author
Acknowledgements
About the Reviewer
www.PacktPub.com
Preface

Summary


This chapter covers one of the cornerstones of the F# data processing, namely sequences. The existing F# core sequence library allows you to apply all typical patterns of functional data processing.

When you feel an urge to implement just another custom function for sequence processing, the first thing you need to do is determine which known pattern groups it would belong to and then check twice whether this function is really not implemented already or whether it can be simply composed from the remaining library functions. Recollect the Minimizing moving parts over hiding them section from Chapter 1, Begin Thinking Functionally. Core libraries are minimalistic sets of such high-quality parts, so sticking to them eventually positively influences the quality and readability of your code.

You obtained plenty of details about the inner workings of the F# sequences and should now be able to produce sequences by a variety of means by dealing, when appropriate, with conceptually clean sequences...