At

AttaLambda: a language where types and data are made of untyped lambdas

Hacker News

AttaLambda: a language where types and data are made of untyped lambdas

I made a programming language! I call it AttaLambda. The idea is this: a usable Lisp-shaped language where all the meaningful computation is done in untyped lambda calculus. Logic, arithmetic, data structures, control flow, even the types — all untyped lambdas. A small, explicit Racket layer sits at the boundary to handle the outside world, plus some macros for syntactic sugar. This is its story: A couple years ago, I wanted to play with untyped lambda calculus and go beyond where tutorials usually stop. They show booleans, numbers, arithmetic, maybe the Y-combinator — and then stop. I wanted them to keep going. So I started a project called All The Lambdas. Using Racket set to lazy, I used only one Racket construct for actual computation — lambda — and built integers, rationals, lists, binary digit-list number encodings, search algorithms, and more. Then I found Functional Programming Through Lambda Calculus by Greg Michaelson. In it, Michaelson sketches the bones of a language built in untyped lambda calculus, including a type system where typed objects are themselves pair functions containing a type tag and value. I found that intriguing and implemented and extended the idea, still entirely with untyped lambdas. I don't have a background in programming language theory, so I was figuring it out as I went. Then I stopped tinkering with it for a while. Recently I came back and thought: why not turn this into a real usable language with the help of coding agents? I reused most of All The Lambdas as the foundation. Thus AttaLambda was born. Some additional details: * Rat, its number type, uses binary digit-list encodings instead of Church numerals, so numbers scale with their number of binary digits rather than their value * errors are lambda-encoded values, not Racket exceptions, and propagate through the language like ordinary data * the Racket host only performs irreducibly external operations; even things like HTTP parsing, routing, and response construction stay in the pure lambda world * recursion uses lambda-calculus recursion: no loops or true self-reference, just the Y-combinator underneath * automated purity checks catch accidental cheating, like native computation leaking into the pure parts * syntax like multi-argument lambdas, let, cond, and list is just macro sugar that reduces to unary lambdas and application A couple code examples: (short of print, every single thing here reduces to unary untyped lambdas) Factorial: #lang attalambda (rec factorial n = (cond ((eq n 0) 1) (else (mult n (factorial (sub n 1)))))) (print (factorial 10)) Which prints: 3628800 Or an exact harmonic sum: #lang attalambda (print (reduce add 0 (map (lambda (n) (unwrap-ok (div 1 n))) (range 1 8)))) Which prints exactly: 363/140 As far as I know, no programming language combines all these features: Michaelson-style type tags built from untyped lambdas, exact rationals backed by binary digit lists, errors as lambda values, and real-world programs where almost all computation stays inside the lambda core. None of those pieces are individually new, but I don't know of another language combining them this way. Download: https://github.com/kserrec/attalambda/releases/tag/v0.7.0 Code: https://github.com/kserrec/attalambda Original All The Lambdas: https://github.com/kserrec/all_the_lambdas

Share card

Actual performance

2points
Did not reach leaderboard

Launch Intel predictions

Analyze your own launch →
Indie HackersFits the IH revenue-focused audience · Strong signals: started, including · Missing: supports, reddit linkedin, podcasting
89%89% predicted probability of success on Indie Hackers, based on ML models trained on real launch data.
best fitHighest predicted score across all platforms for this description.
Product HuntOn track for Day 1 leaderboard · Strong signals: mac, agents, agent · Missing: macos, cursor, claude
66%66% predicted probability of success on Product Hunt, based on ML models trained on real launch data.
Hacker NewsStrong engagement from HN community · Strong signals: ide, io, including · Missing: https docs, excited, just released
51%51% predicted probability of success on Hacker News, based on ML models trained on real launch data.
nativeThis product was originally launched on this platform.
AppSumoMay struggle as an AppSumo deal · Strong signals: plus, host · Missing: platform, intuitive, reviews
49%49% predicted probability of success on AppSumo, based on ML models trained on real launch data.
TrustMRRLess likely to generate early MRR · Strong signals: way · Missing: mobile apps, ios, personal
49%49% predicted probability of success on TrustMRR, based on ML models trained on real launch data.
Acquire.comPre-revenue stage for this audience · Missing: arr, mrr, revenue
17%17% predicted probability of success on Acquire.com, based on ML models trained on real launch data.
BetaListMay not resonate with beta-testers · Missing: web3, chat, crypto
0%0% predicted probability of success on BetaList, based on ML models trained on real launch data.

Incorrect prediction on native model

Similar products

Cd
Cdist types and parameters39%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

Cdist types and parameters

Hacker News1
Su
Sum Types for Ruby48%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

Sum Types for Ruby

Hacker News7
Go
Go has proper sum types now56%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

Go has proper sum types now

Hacker News1
Ra
Random Data Generator for arbitrary data types65%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

Random Data Generator for arbitrary data types

Hacker News5
I
I made a website for inhaler types and instructions62%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

I made a website for inhaler types and instructions

Hacker News6
A
A C-style language interpreter implemented by the TypeScript types46%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

A C-style language interpreter implemented by the TypeScript types

Hacker News2
Nu
Numbat – A programming language with physical dimensions as types70%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

Numbat – A programming language with physical dimensions as types

Hacker News146
Po
Poica – Algebraic data types and type introspection for pure C54%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

Poica – Algebraic data types and type introspection for pure C

Hacker News116
Cy
CyteType – AI agents that annotate cell types in scRNA-seq data39%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

CyteType – AI agents that annotate cell types in scRNA-seq data

Hacker News1
Ko
Kotlin∇: Shape-Safe Symbolic Differentiation with Algebraic Data Types40%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

Kotlin∇: Shape-Safe Symbolic Differentiation with Algebraic Data Types

Hacker News15