Which functional programming language should I learn?

This page summarizes the projects mentioned and recommended in the original post on /r/functionalprogramming

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • atomic

    Write ClojureScript in JavaScript without a transpiler. (by mlanza)

  • I did enough Clojure/ClojureScript to learn them and then I ported the concepts to JavaScript. Now I do JavaScript the Clojure way, including using native JavaScript objects and arrays but never mutating them. Most of my programming over the past decade has been JavaScript, but I can tell you all the Clojure ideas work in this realm including protocols.

  • learn-you-a-haskell

    “Learn You a Haskell for Great Good!” by Miran Lipovača

  • If mathematical jargon and notions don't spook you, Haskell will be a great language to learn FP. It is one of the few that enforces purity and that's a huge plus. There are plenty of resources to start learning, I highly recommend Learn You a Haskell for Great Good! and there are others to continue after it.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • elm-architecture-tutorial

    How to create modular Elm code that scales nicely with your app

  • If you know Web development already, Elm might be the easiest approach. The Elm guide will have you work on functional snippets of code very quickly. The syntax is almost the same as Haskell, it's also pure, it just comes with far less bells and whistles as far as advanced features go. But you'll be able to have a real working web app in no time and the Elm architecture will basically force you to make it functional (whereas you can bend Haskell to program something imperative, with mutable state all over the place, etc…). Elm also has some of the most helpful compiler error messages and a time-traveling debugger, both great features when you're learning. (well, the time-traveling debugger is a great feature, period)

  • vscode-haskell

    VS Code extension for Haskell, powered by haskell-language-server

  • Have you tried installing Haskell with https://www.haskell.org/ghcup? After installing it vscode with the https://github.com/haskell/vscode-haskell Haskell extension should work out of the box.

  • cats

    Lightweight, modular, and extensible library for functional programming.

  • 3) Finally, Scala 3 + cats is a great middle ground. It's a great language to teach and learn FP, even if you learn by yourself, without support from other people. There are lots of materials and even if you get stuck with a concept, you can still implement it using what you knew before.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB 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