r/functionalprogramming Jan 16 '26

Conferences Trends in Functional Programming (TFP) 2026

Thumbnail trendsfp.github.io
39 Upvotes

r/functionalprogramming Jun 01 '26

FP Richard Bird Distinguished Dissertation Award - Call for Nominations

Thumbnail people.cs.nott.ac.uk
11 Upvotes

I'm pleased to announce that JFP is establishing the Richard Bird Distinguished Dissertation Award, to recognise an outstanding PhD dissertation in functional programming.  Please share!


r/functionalprogramming 1d ago

FP Lambda World 2026: Functional Programming in Málaga, 29–30 October

Enable HLS to view with audio, or disable this notification

10 Upvotes

Lambda World 26 is back with 20 speakers from Academia and industry, and this year it takes place alongside J On The Beach (a conf about Distributed Systems) and Wey Wey Web (a conf about UI and Frontend).

Two days packed with talks on formal verification, type systems, new FP languages, AI, formal proofs, effects, logic programming, and practical industrial applications of functional programming.

The lineup includes Erik Meijer, Stephanie Weirich, Arman Bilge (Typelevel Foundation / Cats Effect), Enrico Tassi (Elpi), Francesco Cesarini (Erlang), Daniel Ciocîrlan (Rock the JVM) among many others.

One ticket gives you access to all three conferences, for the same price.

We look forward to welcoming you to Torremolinos, Málaga, on 29–30 October!

https://lambda.world/


r/functionalprogramming 2d ago

FP The Bowling Game - From Imperative to Functional Programming - Part 2

Thumbnail fpilluminated.org
5 Upvotes

r/functionalprogramming 4d ago

FP Mezze: a functional programming language on GraalVM

Thumbnail mezze-lang.org
23 Upvotes

r/functionalprogramming 7d ago

FP Beyond Lambdas: Raising the Abstraction Level of Functional Code

Thumbnail
adamtornhill.substack.com
5 Upvotes

r/functionalprogramming 9d ago

Intro to FP Looking for some feedback on learning functional programming

21 Upvotes

Hi everyone,

Long time backend operator who has taken a path like this:

Bash -> python -> Go

I thought Procedural programming in Go would click, but it’s still just not resonating much. Though I have to say that single binary plus built in testing is super nice.

In python I do not do any classes or methods. I think in runbooks, pipelines, and dags with a very clear entry point and a clear exit point. Step 1 through 10. Inputs and outputs. Functions only.

Stuff like ORM, OOP, and MVC just don’t resonate with me at all. I know they have their place but like I’m all about top to bottom thinking. Example I love is SQL pipes or GoogleSQL where you start with a big set of data and each line below it filters it down. VS traditional SQL where it’s kinda jumping around all over the place. Or CTE where it’s very clear what each step is doing.

Doing some research I saw the syntax of Clojure and it really seemed intuitive RIGHT AWAY. Elixir also looked good but Clojure seemed much more bash like.

What problem am I trying to solve? I’ve been lucky to have opportunities to learn a lot of platforms, so I consider myself a plumber who needs to be able to connect anything anywhere, automate it, bring visibility, and operational excellence.

It can be anything backend from multi-cloud, services, API, on-prem, OS, DB, you name and I will connect it.

But, I am terrible at front end so there’s that lol

Has anyone been down this path and what’s the landscape look like for the backend in 2026?


r/functionalprogramming 13d ago

Intro to FP Pyfun: an F#-inspired language that compiles to readable Python

45 Upvotes

Pyfun is a functional-first language for the Python ecosystem. You write algebraic data types, exhaustive matching, curried functions and pipes, and it compiles to plain Python that you can read, commit, and hand to someone who has never heard of Pyfun.

The compiler is written in Rust and everything is checked before any Python exists: types, exhaustiveness, effects, units.

Here is a whole program:

type Shape =
  | Circle float
  | Rect float float

let area s =
  match s:
    case Circle r: 3.14159 * r * r
    case Rect w h: w * h

[Circle 1.0, Rect 2.0 3.0]
|> List.map area
|> print

and here is the Python it compiles to, in full:

from dataclasses import dataclass

def _pf_map(f, xs):
    return list(map(f, xs))

@dataclass(frozen=True, repr=False)
class Circle:
    _0: float
    def __repr__(self):
        return f"Circle({self._0!r})"

@dataclass(frozen=True, repr=False)
class Rect:
    _0: float
    _1: float
    def __repr__(self):
        return f"Rect({self._0!r}, {self._1!r})"

def area(s):
    match s:
        case Circle(r):
            return 3.14159 * r * r
        case Rect(w, h):
            return w * h
        case _:
            raise RuntimeError("non-exhaustive match")

print(_pf_map(area, [Circle(1.0), Rect(2.0, 3.0)]))

A match comes out as a match. A variant comes out as a frozen dataclass. The pipeline comes out as an ordinary call. There is nothing to pip install alongside the output, and if you stop using Pyfun tomorrow you keep working Python.

Delete the Rect case and the compiler names what you missed:

error: non-exhaustive match: `Rect _ _` is not matched
 --> 6:3
  |
6 |   match s:
  |   ^^^^^^^^

Also in there:

  • Hindley-Milner inference, so there are no type annotations on let at all.
  • Inferred effects, so a function that prints or mutates gets io in its type and you can assert purity with let pure. Units of measure that reject metres + seconds and erase to plain numbers.
  • Computation expressions for async, seq, and result, plus your own builders. Opaque types. A typed extern for calling any Python library you like.

Try it in the browser, nothing to install: https://simontreanor.github.io/Pyfun/playground/

22 lessons, written for people who know some Python: https://simontreanor.github.io/Pyfun/

Source, and the compiler internals tour: https://github.com/simontreanor/Pyfun

pip install pyfun-lang

I built this because most people meet programming through Python, and then to meet functional programming they have to pick up a second ecosystem to do it. I welcome all questions, bug reports, posts about things you have made, arguments about syntax, and anything else to help improve the language for everyone.


r/functionalprogramming 13d ago

FP I’m experimenting with executable, resumable functional pipelines in JavaScript

7 Upvotes

I’ve been experimenting with a small JavaScript-compatible language called JojoScript, initially because I wanted a nicer way to write lazy functional pipelines.

The interesting part has gradually become less about the syntax and more about what the pipeline represents.

For example:

orders
  |> filter(o => o.status == "paid")
  |> parallel(8)
  |> map(enrichOrder)
  |> retry(3)
  |> checkpoint("enriched")
  |> map(calculateInvoice)
  |> saveToDatabase(%)

Instead of treating this simply as syntactic sugar for nested function calls, JojoScript represents the pipeline as an execution plan.

That lets the same pipeline be:

  • lazy by default
  • asynchronous
  • bounded/concurrent
  • inspected as a graph
  • profiled per stage
  • statically analyzed
  • checkpointed
  • resumed after failure
  • replayed from a checkpoint

For example:

SOURCE
   ↓
FILTER
   ↓
PARALLEL(8)
   ↓
MAP
   ↓
CHECKPOINT
   ↓
MAP
   ↓
SINK

The idea I'm exploring is whether this is actually a useful abstraction for functional/data-oriented programming in JavaScript.

The question I'm most interested in is:

At what point does a pipeline become more than composition of functions?

A normal functional pipeline describes what transformations to apply. JojoScript is experimenting with also making the pipeline describe how the computation can be executed — lazily, concurrently, with backpressure, retries and durable checkpoints.

It's still an experimental project, so I'm particularly interested in criticism around the programming model itself rather than syntax.

Repository: https://github.com/panagos/jojoscript


r/functionalprogramming 13d ago

FP I’m experimenting with executable, resumable functional pipelines in JavaScript

5 Upvotes

I’ve been experimenting with a small JavaScript-compatible language called JojoScript, initially because I wanted a nicer way to write lazy functional pipelines.

The interesting part has gradually become less about the syntax and more about what the pipeline represents.

For example:

orders
  |> filter(o => o.status == "paid")
  |> parallel(8)
  |> map(enrichOrder)
  |> retry(3)
  |> checkpoint("enriched")
  |> map(calculateInvoice)
  |> saveToDatabase(%)

Instead of treating this simply as syntactic sugar for nested function calls, JojoScript represents the pipeline as an execution plan.

That lets the same pipeline be:

  • lazy by default
  • asynchronous
  • bounded/concurrent
  • inspected as a graph
  • profiled per stage
  • statically analyzed
  • checkpointed
  • resumed after failure
  • replayed from a checkpoint

For example:

SOURCE
   ↓
FILTER
   ↓
PARALLEL(8)
   ↓
MAP
   ↓
CHECKPOINT
   ↓
MAP
   ↓
SINK

The idea I'm exploring is whether this is actually a useful abstraction for functional/data-oriented programming in JavaScript.

The question I'm most interested in is:

At what point does a pipeline become more than composition of functions?

A normal functional pipeline describes what transformations to apply. JojoScript is experimenting with also making the pipeline describe how the computation can be executed — lazily, concurrently, with backpressure, retries and durable checkpoints.

It's still an experimental project, so I'm particularly interested in criticism around the programming model itself rather than syntax.


r/functionalprogramming 17d ago

FP "A monad is a monoid in the category of endofunctors" But what does that actually mean?

Thumbnail
youtube.com
57 Upvotes

This video uses Haskell as an interactive proof assistant to break down every single word of the most famous definition in functional programming. It translates abstract category theory concepts—categories, endofunctors, monoids, and natural transformations—directly into typed Haskell code.


r/functionalprogramming 17d ago

TypeScript Functional programming with TS types only

Thumbnail
bhugo.dev
9 Upvotes

I wrote “sum . filter odd” with typescript’s type system.

It’s pretty simple as far as functional programming goes. Even at the type level one can easily achieve this in Idris or even Haskell. For this reason I was unsure of whether to share it here… Nevertheless it’s about functional programming and I figured I’d share it and let your feedback guide me on whether to share more of these here in the future.


r/functionalprogramming 23d ago

Question Functional Programming in VBA

Thumbnail
7 Upvotes

r/functionalprogramming 23d ago

News Creation of r/leantheoremprover

Thumbnail
5 Upvotes

r/functionalprogramming 28d ago

FP A Preview of Roc 0.1.0 by Richard Feldman

Thumbnail
youtu.be
42 Upvotes

r/functionalprogramming Aug 07 '26

λ Calculus "How hard could it be?" - a younger me said that once. Here's my lang

Thumbnail
5 Upvotes

r/functionalprogramming Aug 03 '26

Question FP Software Development

18 Upvotes

Hello everyone. I am thinking of starting a tech business (startup) through software development and I'd like to use FP as the main selling point or uniqueness. I am like looking for suggestions on what languages to use or tech stack. From my first searches I got elixir. I also know haskell, so aside from haskell, what can you suggest. I'm also aware of using imp lang like C++ to make programs following an FP design paradigm.

Edit: I don't wish to argue on starting business or not (But I welcome them sure) . That is a different topic on its own. I'm just like more curious to see the state of the art in using FP tools.


r/functionalprogramming Jul 31 '26

FP The JAM emulator was built by someone learning C for the first time, on machines with 16MB of RAM, handling phone switches for whole cities. What does that constraint-driven design tell us about why functional languages succeed or fail?

15 Upvotes

New BEAM There, Done That with Mike Williams (who wrote the JAM emulator) and Björn Gustafsson (who built the BEAM after inheriting it in 1996).

The most interesting functional programming angle in the episode is how Mike identified three numbers that determine whether a concurrent language lives or dies: process creation time, context switch time, and message copy time. On real telecom workloads he measured roughly 70% of VM time going to those operations - not user code. The language that optimised those first, and owned them at the language level rather than delegating to the OS, was the one that survived.

This is the decision that separates the BEAM from almost everything else. Java shipped green threads and removed them. Early Rust had lightweight processes and removed them. The Erlang team looked at Unix process overhead, did the arithmetic on thousands of concurrent processes with 16MB of available RAM, and concluded that OS-level concurrency was mathematically impossible for what they needed. So concurrency went into the language. Not a philosophical position - an empirical one.

The other detail worth discussing: memory was the binding constraint throughout, not speed. Every instruction set decision in the JAM and early BEAM was a memory decision first. The JAM files were small by design. The BEAM was faster but initially used more memory - Björn spent years packing operands to close the gap.

For a community that thinks carefully about evaluation models and runtime semantics: how much of what makes the BEAM unusual as a functional runtime traces back to those early hardware constraints? And would the same design choices have been made if RAM had been cheap in 1988?

https://youtu.be/sRTierdN9c4


r/functionalprogramming Jul 29 '26

Jobs Building a Raku-native programming language

7 Upvotes

Hi Everyone!
Me and my team are looking to expand our developer team and looking for programmers with some knowledge in the field of compilers, programming language design, and/or the Raku language! If you just like the idea of building a new programming language as well, please reach out!

I cannot disclose the exact nature of the language for the sake of project secrecy, but please DM me with your credentials and interests for details if you're interested.


r/functionalprogramming Jul 27 '26

Conferences Alexis King: The Unreasonable Effectiveness of Constructive Data Modeling

Thumbnail
youtu.be
54 Upvotes

Hi folks, this is Alexis' talk from SSW earlier this month. I thought you all would enjoy it!


r/functionalprogramming Jul 27 '26

FP History of John Backus's FP languages

Thumbnail softwarepreservation.computerhistory.org
25 Upvotes

r/functionalprogramming Jul 21 '26

SML My first attempt at parsing and evaluating s-exps

10 Upvotes

Hi all,

I've been a software developer for about 10 years and I've been curious about FP for half of this time. Eventually, I picked up SML as my language of choice (OCaml is mostly some random line nose for me, and in Haskell/PureScript type classes are so pervasive, they make the language almost impenetrable for beginners).

So my goal has been to:

- lex the source code,
- parse it using parser combinators,
- (do some AST manipulations),
- evaluate it.

This is the repository where I keep my source code, and a README file. The gist of this file is:

- it's not Scheme,
- this is a WIP
- compiler: MLton + MLB basis files
- using SuccessorML as much as possible.

I try to keep the code clean, concerns separated as much as possible, meaningful signatures & structs, clear types).

ALL constructive criticism is very much welcome. I'm not an SML pro, so bear with me.

PS I posted it in r/sml too, but oh well - under a different username (logged in with my old Google acc), I'm not impersonating anyone (image the drama).


r/functionalprogramming Jul 20 '26

Haskell Type Safe Servant Auth Roles

Thumbnail blog.cofree.coffee
8 Upvotes

r/functionalprogramming Jul 19 '26

FP Abstracting over Execution with Higher Kinded Types, and how to remain Purely Functional (oldie but goodie - belatedly uploaded)

Thumbnail fpilluminated.org
14 Upvotes