Functional Programming Library for Golang by IBM

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Nutrient – The #1 PDF SDK Library, trusted by 10K+ developers
Other PDF SDKs promise a lot - then break. Laggy scrolling, poor mobile UX, tons of bugs, and lack of support cost you endless frustrations. Nutrient’s SDK handles billion-page workloads - so you don’t have to debug PDFs. Used by ~1 billion end users in more than 150 different countries.
www.nutrient.io
featured
CodeRabbit: AI Code Reviews for Developers
Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
coderabbit.ai
featured
  1. fp-go

    functional programming library for golang

    True, however the README does link to this:

    https://github.com/IBM/fp-go/tree/main/samples

  2. Nutrient

    Nutrient – The #1 PDF SDK Library, trusted by 10K+ developers. Other PDF SDKs promise a lot - then break. Laggy scrolling, poor mobile UX, tons of bugs, and lack of support cost you endless frustrations. Nutrient’s SDK handles billion-page workloads - so you don’t have to debug PDFs. Used by ~1 billion end users in more than 150 different countries.

    Nutrient logo
  3. gofpher

    a collection of functional programming constructs for go

    I'm glad to see this idea getting some traction again. I haven't used Go much in the last few years, but I started writing playing around with a similar idea back in 2016 when I was working on a small compiler for a configuration management tool, and later put together a [small stand-alone proof of concept library](https://github.com/rebeccaskinner/gofpher) as part of a [talk](https://speakerdeck.com/rebeccaskinner/monadic-error-handlin...).

    At the time, I remember finding FP in go surprisingly ergonomic. Implementing the library to support it was a pain since the type system wasn't expressive enough to prevent everything from devolving into a pile of untyped reflection, but it was reasonably easy to keep that an implementation detail. On the whole, I felt like go would have lent itself well to the "dash of FP for flavor" style of programming that seems to be gaining popularity these days. Unfortunately, in 2017 at least, the Go community seemed to have very little interest in the idea.

    I still have a fondness for Go. It always felt nice to use. If the language features have caught up to the point where a robust library like this is feasible, and the communities attitude has shifted, I might take another look at the language.

  4. scala

    Scala 2 compiler and standard library. Scala 2 bugs at https://github.com/scala/bug; Scala 3 at https://github.com/scala/scala3

    Big Scala vibes here, see also [1].

    1: https://github.com/scala/scala/blob/v2.13.11/src/library/sca...

  5. lo

    💥 A Lodash-style Go library based on Go 1.18+ Generics (map, filter, contains, find...)

    A simple alternative is the combination of:

    - https://github.com/samber/lo

    - https://github.com/samber/mo

    The split is also nice as you can choose to just use the generic convenience functions from lo without the more FP related things from mo.

  6. mo

    🦄 Monads and popular FP abstractions, powered by Go 1.18+ Generics (Option, Result, Either...)

    A simple alternative is the combination of:

    - https://github.com/samber/lo

    - https://github.com/samber/mo

    The split is also nice as you can choose to just use the generic convenience functions from lo without the more FP related things from mo.

  7. fp-ts

    Functional programming in TypeScript

    The library for TypeScript that this is influenced by is here:

    https://github.com/gcanti/fp-ts

    Interesting how both languages with this library converge to a similar syntax, due to heavy use of functions.

  8. FuncFrog

    Stream api (kind of) implementation for go, other useful functions and packages to use go in a functional way

    if it have to be in FP style, this one is better

    https://github.com/koss-null/FuncFrog

    still prefer non-FP part tho

  9. CodeRabbit

    CodeRabbit: AI Code Reviews for Developers. Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.

    CodeRabbit logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Go is not an easy language (2021)

    1 project | news.ycombinator.com | 14 Jan 2024
  • samber/lo utility package based on generics

    2 projects | /r/golang | 18 May 2023
  • Common Utiliy Functions in Go

    2 projects | /r/golang | 27 Apr 2023
  • Starting go after py any guidance will be helpful :)

    1 project | /r/golang | 12 Apr 2023
  • Higher-order functions in Go

    1 project | news.ycombinator.com | 8 Apr 2023

Did you know that Go is
the 4th most popular programming language
based on number of references?