Hacker News

Show stories

Live mirror
30 storiesupdated just nowView source snapshot
  1. Show HN: An e-ink frame that hears birds and draws them as 1800s illustrations(github.com/arnegiacomo ↗)
    235comments
  2. Show HN: Restarted – a 2026 remake of the classic 2015 startup generator(restarted.io ↗)
    4comments
  3. Show HN: AttaLambda: a language where types and data are made of untyped lambdas(attalambda.com ↗)
    discuss
  4. Show HN: Collected every single "What are you working on" project into a website(reachpad.app ↗)
    1comments
  5. Show HN: Kosmic Kart – Mario Kart-style racing with friends in the browser(kosmi.io ↗)
    discuss
  6. Show HN: How Stale Is Your AI? Release age and training cutoff for 20 models(stale.jock.pl ↗)
    44comments
  7. Show HN: SeasonMap – when to travel where? visualized with climate data(seasonmap.app ↗)
    8comments
  8. Show HN: Interakt – open-source self-hosted search and AI chat for your website(github.com/alphasolutionsrepo ↗)
    discuss
  9. Show HN: Friday – Self-hosted persistent memory for AI coding agents (MCP)(github.com/itskie ↗)
    2comments
  10. Show HN: Halo 3's Guardian, playable in the browser, as my personal website(runboli.com ↗)
    4comments
  11. Show HN: I made a flight simulator, except you're just a passenger(inflightsimulator.com ↗)
    200comments
  12. Show HN: Padwan-LLM, a lightweight LLM Python client(github.com/polarsen-io ↗)
    discuss
  13. Show HN: ManyBot – Framework to build WhatsApp bots, without the boring part(manybot.org ↗)
    discuss
  14. Show HN: Hacking a $20 4G wireless hotspot into a texting device(bkovac.github.io ↗)
    36comments
  15. Show HN: Capsule – Single-file web apps that save their data into SQLite(withcapsule.app ↗)
    156comments
  16. Show HN: Pizza Bot – An inbox for AI agents that work in the background(github.com/pizza-bot-app ↗)
    33comments
  17. Show HN: Pixel Agents – A pixel-art mission control for your Claude Code agents(mateovalle.github.io ↗)
    1comments
  18. Show HN: Swift-Qwen3.8-27B, -58.3% thinking, x1.95 speed, accuracy of xhigh(huggingface.co ↗)
    11comments
  19. Show HN: Redis City – Explore how Redis works in an interactive 3D model(poltora.dev ↗)
    26comments
  20. Show HN: YOLO FPS-per-dollar numbers for edge AI boards ($75-$215)(github.com/chorylee ↗)
    discuss
  21. Show HN: Put an AI agent on a FaceTime audio/video call (open source, WebRTC)(github.com/cherthq ↗)
    discuss
  22. Show HN: OmnisBench, a re-gradable, open LLM routing benchmark on fresh tasks(github.com/fortitude-group ↗)
    1comments
  23. Show HN: Macros with a Behringer FCB1010 MIDI Pedalboard in macOS(github.com/jamesryanatx ↗)
    21comments
  24. Show HN: Kinesis – Control your Mac with the Meta Neural Band(github.com/callbacked ↗)
    46comments
  25. Show HN: Panel – A research workspace where the agent can build its own panes(github.com/greentfrapp ↗)
    21comments
  26. Show HN: Picxel – Turn reference images into pixel-art game assets(github.com/see-sol-lab ↗)
    1comments
  27. Show HN: Pelican-bicycle alternatives(gally.net ↗)
    45comments
  28. Show HN: TurboBench, the Compression Lie Detector, 100 Codecs, Daily Update(github.com/powturbo ↗)
    discuss
  29. Show HN: Nari Qwen3-TTS and Qwen3-ASR – High accuracy, low latency and cost(narilabs.com ↗)
    31comments
  30. Show HN: Pull every comment out of a Google Sheet, in the browser(bensunter.com ↗)
    1comments

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

29 pointsby 2d agoattalambda.com
0 comments
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

A quiet thread, for now.Start the conversation on HN ↗