functional-go
b
Our great sponsors
functional-go | b | |
---|---|---|
4 | 2 | |
179 | - | |
- | - | |
5.9 | - | |
5 months ago | - | |
Go | ||
Apache License 2.0 | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
functional-go
- functional-go/internal/generatefp.go
-
Go 1.18 Released
>> By introducing a single generic, you could reduce it from 500 lines to 20
No one is writing 500 lines of code - just as when you use the generics syntax you don’t write the code that is generated by the compiler in response.
You could save about 10 lines, specifically these 10:
https://github.com/logic-building/functional-go/blob/master/...
You would still need the comparable ~40 lines of “generic” code:
https://github.com/logic-building/functional-go/blob/master/...
-
Do you see any interesting use cases for the upcoming type sets, other than generic type constraints?
Yes! There is this library that uses go generate for achieving functional patterns https://github.com/logic-building/functional-go. It would really benefit from such thing.
b
-
Go 1.18 Released
It depends on the level of abstraction you're addressing. One level may be "i need to store things with a quick search function", another may be "i need a storage of ordered names and expiry date for things", etc until you get to "I need a binary tree which orders by comparable types".
Where you split that process as a separate library you either decide to write or reuse - that becomes the problem to solve. A set implementation may be a problem to solve: https://github.com/deckarep/golang-set A btree may be a problem to solve: https://gitlab.com/cznic/b/-/tree/master/v2
-
A generic B+Tree implementation you can use today
Requires Go1.18beta1 or later: https://gitlab.com/cznic/b/-/tree/master/v2
What are some alternatives?
lo - 💥 A Lodash-style Go library based on Go 1.18+ Generics (map, filter, contains, find...)
go_chainable - With generics, allowing chainable .Map(func(...)).Reduce(func(...)) syntax in go
proposal - Go Project Design Documents
gtl - Golang Template Library (GTL). Common data structures using Golang generics.
fp-go - fp-go is a collection of Functional Programming helpers powered by Golang 1.18+ generics.
go-generic-optional - Implementation of Optionals in Go using Generics
go - The Go programming language
redpanda - Redpanda is a streaming data platform for developers. Kafka API compatible. 10x faster. No ZooKeeper. No JVM!
genny - Elegant generics for Go