SaaSHub helps you find the best software and product alternatives Learn more →
Fp-go Alternatives
Similar projects and alternatives to fp-go
-
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
-
scala
Scala 2 compiler and standard library. Scala 2 bugs at https://github.com/scala/bug; Scala 3 at https://github.com/scala/scala3
-
FuncFrog
Stream api (kind of) implementation for go, other useful functions and packages to use go in a functional way
-
mo
🦄 Monads and popular FP abstractions, powered by Go 1.18+ Generics (Option, Result, Either...)
-
-
-
fo
Discontinued An experimental language which adds functional programming features to Go. (by albrow)
-
-
gomad
Lightweight functional data and side effects manipulation patterns in Golang with no dependencies.
-
fp-go discussion
fp-go reviews and mentions
-
Functional Programming in Go
I've tried going down this route myself by using libraries like fp-go[1]. I think this particular project has done a great job, but I ultimately opted not to pursue functional programming in Go for a few reasons:
- Ergonomics weren't the greatest when working with monads such as options and results. I think pattern matching is needed here, but concepts like those go against Go's core design philosophy.
- I suspect there are several cases where runtime performance is an issue, but admittedly did not investigate this.
- Perhaps most importantly, it deviates from the way most people read and write Go, and less importantly, LLMs struggle too.
Because of these reasons, I came to the conclusion that the advantages were not worth the trade-offs.
Perhaps somebody will create a garbage-collected Rust-like language in the future and bridge the gap between the two languages.
[1] - https://github.com/IBM/fp-go
- IBM/fp-go: functional programming library for golang
-
Functional Programming Library for Golang by IBM
True, however the README does link to this:
https://github.com/IBM/fp-go/tree/main/samples
-
A note from our sponsor - SaaSHub
www.saashub.com | 13 Jan 2025
Stats
IBM/fp-go is an open source project licensed under Apache License 2.0 which is an OSI approved license.
The primary programming language of fp-go is Go.