{"repo":"TeaEntityLab/fpGo","free":true,"listed":false,"github":"https://github.com/TeaEntityLab/fpGo","clone":"git clone https://github.com/TeaEntityLab/fpGo.git","description":"Monad, Functional Programming features for Golang","language":"Go","stars":355,"topics":["golang","functional-programming","functional-reactive-programming","reactive","reactive-programming","golang-library","monad","monads","collection","optional"],"license":"MIT","category":"dev-tools","readme_excerpt":"fpGo Monad, Functional Programming features for Golang Active Branches: For Generics version( =go1.18 ):generics For NonGenerics version( <=go1.17 ):non-generics Why I love functional programing, Rx-style coding, and Optional usages. However it's hard to implement them in Golang, and there're few libraries to achieve parts of them. Thus I implemented fpGo. I hope you would like it :) Features Optional/Maybe Monad, Rx-like Publisher Pattern matching Fp functions Java8Stream-like Collection Queue (LinkedListQueue/ChannelQueue/BufferedChannelQueue/ConcurrentQueue) PythonicGenerator-like Coroutine(yield/yieldFrom) Akka/Erlang-like Actor model(send/receive/spawn/states) network/SimpleHTTP inspired by Retrofit worker/WorkerPool inspired by JavaExecutorService & goroutine pool libs Special thanks fp functions(Dedupe/Difference/Distinct/IsDistinct/DropEq/Drop/DropLast/DropWhile/IsEqual/IsEqualMap/Every/Exists/Intersection/Keys/Values/Max/Min/MinMax/Merge/IsNeg/IsPos/PMap/Range/Reverse/Set/Some/IsSubset/IsSuperset/Take/TakeLast/Union/IsZero/Zip/GroupBy/UniqBy/Flatten/Prepend/Partition/Tail/Head/SplitEvery) Credit: https://github.com/logic-building/functional-go Credit: https://github.com/achannarasappa/pneumatic Usage Optional (IsPresent/IsNil, Or, Let) MonadIO (RxObserver-like) Example: Stream (inspired by Collection libs) Example(Generics): Example(Non-Generics/interface{}): Queue(LinkedListQueue/ChannelQueue/BufferedChannelQueue/ConcurrentQueue) (inspired by Collection libs) Linked","default_branch":null,"files":null,"tree":[],"storefront":"/r/TeaEntityLab","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/TeaEntityLab/fpGo/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}