Functional programming in Go
- Local reasoning
- Combinability
- Easier testing
- Robust systems
- "Programs are written at a higher level, and are therefore easier to comprehend"
- "Parallel/concurrent programming is easier"
See more details from Alvin Alexander
- Side effect free code
- Immutable data
- Transformation of data instead of step by step refinement
- Category theory
- Recursion
- Builtin special for loops: Map, FlatMap, Filter, Fold, Unfold
- Collection methods: Head, Tail, Take, Drop, Partition
- Pattern matching
For TypeScript: https://medium.com/@gcanti/introduction-to-optics-lenses-and-prisms-3230e73bfcfe
For Haskell: https://en.wikibooks.org/wiki/Haskell/Lenses_and_functional_references and https://www.schoolofhaskell.com/school/to-infinity-and-beyond/pick-of-the-week/basic-lensing