Search icon CANCEL
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
Learning Functional Programming in Go

You're reading from   Learning Functional Programming in Go Change the way you approach your applications using functional programming in Go

Arrow left icon
Product type Paperback
Published in Nov 2017
Publisher Packt
ISBN-13 9781787281394
Length 670 pages
Edition 1st Edition
Languages
Arrow right icon
Author (1):
Arrow left icon
Lex Sheehan Lex Sheehan
Author Profile Icon Lex Sheehan
Lex Sheehan
Arrow right icon
View More author details
Toc

Table of Contents (13) Chapters Close

Preface 1. Pure Functional Programming in Go 2. Manipulating Collections FREE CHAPTER 3. Using High-Order Functions 4. SOLID Design in Go 5. Adding Functionality with Decoration 6. Applying FP at the Architectural Level 7. Functional Parameters 8. Increasing Performance Using Pipelining 9. Functors, Monoids, and Generics 10. Monads, Type Classes, and Generics 11. Category Theory That Applies 12. Miscellaneous Information and How-Tos

Introducing the pipeline pattern


The pipeline software design pattern is used in cases where data flows through a sequence of stages where the output of the previous stage is the input of the next. Each step can be thought of as a filter operation that transforms the data in some way. Buffering is frequently implemented between filters to prevent deadlock or data loss when one filter runs faster than another filter connected to it. Connecting the filters into a pipeline is analogous to function composition.

The following diagram depicts the flow of data from a data source, for example, a file. The data is transformed as it passes from one filter to the next, until the result is finally displayed on standard out in the console:

Grep sort example

The /etc/groupfile is the data source. Grep is the first filter whose input is all the lines from the /etc/group file. The grep command removes all lines that do not begin with "com", and then sends its output to the Unix pipe, which sends that data...

lock icon The rest of the chapter is locked
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $19.99/month. Cancel anytime