Functional programming in Go:
“Not sure if it’s a good idea, but let’s try it anyway.”
"Fun to think about; Not sure how to use it."
"The Y-Combinator is a theoretical concept with no practical value."
"Who can understand the code in this Monad package. Lambda what? Generics?"
Please put your prejudices aside, work through this chapter, and then ask yourself, How relevant is functional programming in Go?
Our goals in this chapter are as follows:
- Understand how a Monad works
- Learn how to compose functions using the
bind
operation - Understand how the
Success
andFailure
paths work - Understand how a Monad deals with impure operations
- Work through a Monadic workflow implementation in Go
- Learn what Lambda Calculus is and what it has to do with Monads
- See how Lambda Calculus implements recursion
- Learn how the Y-Combinator works
- Use the Y-Combinator to control workflow
- Learn to write concise workflow code and handle all errors at the end
- Understand how
Type
classes...