frontpage.
newsnewestaskshowjobs

Open Source @Github

fp.

Open in hackernews

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

https://attalambda.com
32•kserrec•2d ago
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

Comments

rsrsrs86•2m ago
This is uninteresting, because 1) you could just share your prompt: “implement Greg Michaelsons book in racket” 2) you added nothing to it 3) you skipped about everything that is interesting to study when learning the lambda calculus

Training a 4B model to produce 81% faster query plans than Postgres

https://rohanbansal.com/qorl
290•polyphilz•3h ago•51 comments

Breaking the 1.58-bit Barrier for Ternary LLMs

https://arxiv.org/abs/2609.16338
77•matt_d•1h ago•3 comments

Xiaomi Mimo 2.6 live post-training dashboard

https://mimo.xiaomi.com/rl/
157•krackers•2h ago•42 comments

Nvidia announces native GPU programming in Rust

https://developer.nvidia.com/blog/introducing-cuda-rust-two-tracks-for-writing-gpu-kernels/
35•nonmaskable•11h ago•5 comments

Small programming tricks

https://will-keleher.com/posts/small-programming-tricks-matter/
329•signa11•6h ago•165 comments

AWS says it can't restore some data from mideast facilities struck by Iran

https://www.wsj.com/world/middle-east/aws-says-it-cant-restore-some-data-from-mideast-facilities-...
135•berkeleyjunk•1d ago•95 comments

Reversing Factorio's RNG

https://gegell.github.io/posts/factorio-rng/
84•jheitmann•4d ago•10 comments

Performance Improvements in .NET 11

https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-11/
101•soheilpro•1d ago•8 comments

Accurate Models of AMD Matrix Cores

https://arxiv.org/abs/2609.14845
47•matt_d•3h ago•5 comments

Japan's book scene is moving from bookstores to libraries

https://untranslatedjp.substack.com/p/japans-book-scene-is-quietly-moving
61•herbertl•4d ago•15 comments

How good are frontier models at physics?

https://arxiv.org/abs/2609.13009
51•qt31415926•3h ago•18 comments

WalShadow: Sub-second Postgres replication to ClickHouse from physical WAL

https://clickhouse.com/blog/introducing-walshadow
30•spathak•5d ago•5 comments

Anatomy of a Texture

https://agentlien.github.io/texture/
62•Agentlien•8h ago•10 comments

Dream-RSI: Recursive Self-Improvement through Evolving Worlds

https://arxiv.org/abs/2609.14858
169•bananaflag•8h ago•49 comments

Mistral X Mozilla: Private, Multilingual AI Browsing

https://mistral.ai/news/mistral-x-mozilla/
506•vertigoruntime•14h ago•182 comments

Vectorized and performance-portable Quicksort (2022)

https://opensource.googleblog.com/2022/06/Vectorized%20and%20performance%20portable%20Quicksort.html
160•mococa•4h ago•24 comments

Show HN: An e-ink frame that hears birds and draws them as 1800s illustrations

https://github.com/arnegiacomo/fugleramme
2031•arnemunthekaas•1d ago•235 comments

Anecdotally, programmers dislike "reduce"

https://evanhahn.com/posts/2026-09-13-programmers-dislike-reduce/
56•vinhnx•2d ago•103 comments

Hackers Got Inside a Flock Camera

https://www.wired.com/story/hackers-flock-camera-data-shows-how-system-works/
409•driverdan•9h ago•200 comments

macOS 27 Golden Gate – Review

https://arstechnica.com/gadgets/2026/09/macos-27-golden-gate-the-ars-technica-review/
87•Brajeshwar•2h ago•90 comments

The Siberian Ice Maiden and the Scythian World

https://patrickwyman.substack.com/p/the-siberian-ice-maiden-and-the-scythian
44•NaOH•1d ago•4 comments

The DeepMind Institute

https://institute.deepmind.com/
116•vertigoruntime•8h ago•38 comments

Tell the speakers that you liked their talks

https://ohhelloana.blog/tell-the-speakers/
260•whisper2020•1d ago•73 comments

Training Text-to-Image Models 3.6× Faster

https://www.linum.ai/field-notes/jit-ddt
19•schopra909•5h ago•1 comments

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

https://attalambda.com
32•kserrec•2d ago•1 comments

Reverse-engineered Jev-like model

https://github.com/vinnylarouge/jevlike
29•rochansinha•3h ago•5 comments

Kyber (YC W23) Is Hiring a Forward Deployed Engineer

https://www.ycombinator.com/companies/kyber/jobs/eturrAR-forward-deployed-engineer
1•asontha•10h ago

Show HN: Restarted – a 2026 remake of the classic 2015 startup generator

https://restarted.io/
17•zxcvbn4038•1d ago•4 comments

Common Crawl Data Stored on a Hugging Face Bucket

https://commoncrawl.org/blog/getting-started-with-common-crawl-data-on-hugging-face
4•abidlabs•59m ago•0 comments

The Engineering Behind the US Strategic Petroleum Reserve

https://johnjwang.com/post/2026/09/15/engineering-behind-us-strategic-petroleum-reserve
3•johnjwang•1d ago•0 comments