finds.dev

VictorTaelin/abstract-algorithm

Optimal evaluator of λ-calculus terms.

View on GitHub

★ 286JavaScriptupdated Feb 2023

// the take

A ~250-line implementation of an optimal lambda-calculus evaluator built on symmetric interaction combinators, by Victor Taelin (who later built HVM as its successor). It's for people interested in interaction nets or optimal reduction theory, not for anyone needing a general-purpose lambda calculus runtime.

The implementation is small enough to actually read end to end and understand how interaction-net reduction maps onto lambda-calculus evaluation - most optimal-reduction code you'll find is either a dense academic paper or a much larger, harder-to-follow codebase. It exposes both layers of the API: compile/reduce/decompile for lambda terms, and raw node-level net construction/reduction, so you can experiment with interaction combinators directly rather than just through the lambda-calculus wrapper. The linked article walks through why certain reduction patterns get an asymptotic win over GHC/Chez/V8, which is a real, demonstrable claim rather than a marketing one.

It's explicitly incomplete - it cannot reduce terms that copy a copy of themselves, and the README calls fixing this an unsolved open problem, so it's not usable as a drop-in evaluator for arbitrary lambda terms. There are no tests and no CI in the repo, so any correctness guarantee comes from reading the ~250 lines yourself, not from the project. It's been dormant since February 2023 and was a single-author research exercise; Taelin's active work moved to HVM, so don't expect fixes or support here. There's no error handling for malformed input terms and no documentation beyond the README's usage snippets.

We read the README, the directory tree and a key source file in October 2026. Nobody pays to be listed. How we judge →

// at a glance

Stars
286
Forks
18
Language
JavaScript
Last commit
4 Feb 2023

// nearby

If abstract-algorithm isn't quite it.

All repos →