Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    J

    John Tromp

    tromp.github.io · Personal blog · on HN since 2014

    John Tromp's site covers lambda calculus, combinatory logic, Go and chess position counts, and compact computation.

    Visit blogRSSHN submissions
    MathLanguages & CompilersGames
    What HN says

    HN links it for binary lambda calculus material and game-position counting, which commenters find understandable and fascinating.

    Stats for nerds
    49HN people shared it
    20linked in comments
    884story points
    Apr 2026last shared
    2017people per year2026

    Top posts on HN

    1. 1
      Number of legal 18x18 Go positions computed. One more to go
      5 people · 231 points · first shared 2015 · 109 comments on HN
    2. 2
      Number of legal Go positions computed
      2 people · 214 points · first shared 2015 · 67 comments on HN
    3. 3
      Lambda Calculus Diagrams (2015)
      9 people · 178 points · first shared 2015 · 32 comments on HN
    4. 4
      Functional Bits: Lambda-calculus based algorithmic information theory [pdf]
      9 people · 126 points · first shared 2018 · 17 comments on HN
    5. 5
      Binary Lambda Calculus (2020)
      12 people · 121 points · first shared 2017 · 14 comments on HN
    6. 6
      The Lazy K – functional programming language
      5 people · 7 points · first shared 2017 · Discussion on HN
    7. 7
      The logical rules of go, with Haskell implementation
      3 people · 2 points · first shared 2015 · Discussion on HN
    8. 8
      The largest number representable in 64 bits
      1 person · 2 points · first shared 2026 · Discussion on HN
    9. 9
      John's Lambda Calculus and Combinatory Logic Playground
      9 people · 1 points · first shared 2015 · Discussion on HN
    10. 10
      The largest number representable in 64 bits
      5 people · 1 points · first shared 2023 · Discussion on HN

    What HN people wrote when they linked it

    • jaboweryJan 2024

      The increasing recognition that "Language Modeling Is Compression" https://arxiv.org/pdf/2309.10668.pdf has not yet been accompanied by recognition that lossless compression is the most principled unsupervised loss function for world models in general, including foundation language models in particular.

      Take, for instance, the unprincipled definition of "parameter count" not only in the LLM scaling law literature, but the Zoo of what statisticians called "Information Criteria for Model Selection". https://en.wikipedia.org/wiki/Model_selection#Criteria

      The reductio ad absurdum of "parameter count" is arithmetic coding where an entire dataset can be encoded as a single "parameter" of arbitrary precision.

      By contrast, the algorithmic bit of information (whether part of an executable instruction or program literal) is an unambiguous quantity up to the choice of instruction set. If you want to quibble about that instruction set choice, take it up with John Tromp https://tromp.github.io/cl/cl.html because what I'm about to propose obviates that along with a lot of other "arguments".

      Since any executable archive of any kind of data can serve as a model of the world generating that data, it follows that any executable archive of any text corpus can serve as a language model with a rigorous "parameter count". Therefore, a procedure which runs LLM benchmarks against any such executable archive as a language model, contributes a uniquely rigorous data point to the literature on LLM…

    • chriswarboAug 2018

      Not sure about this specific paper, but I've been following John Tromp's work on this for a while. Its current homepage seems to be on GitHub https://tromp.github.io/cl/cl.html

      The paper assumes knowledge of combinatory logic and lambda calculus, which you could probably find videos about. This paper uses pretty standard notation, so almost any video/course/book/blog/etc. should be OK. The main thing this paper does is to define a way to encode such programs as a string of bits.

      Note that combinatory logic is one of the simplest Turing-complete programming languages, but it's so simple that it's basically unusable for anything more elaborate than toy examples (the paper actually has a quote from Chaitin saying this!). Once you're comfortable playing with little examples containing a handful of symbols, that's basically all you really need.

      There's a nice book of mathematical puzzles https://en.wikipedia.org/wiki/To_Mock_a_Mockingbird which is actually based on combinatory logic. This is why combinatory logic terms are sometimes referred to as "birds", e.g. in this Haskell library: https://hackage.haskell.org/package/data-aviary-0.4.0/docs/Data-Aviary-Birds.html

      If you're familiar with other programming languages, it's usually pretty easy to implement combinatory logic and play with it. For example, here are 'S' and 'K' in Javascript:

      function k(x, y) { return y; }

      function s(x, y, z) { return x(z)(y(z)); }

      This isn't quite right, due to most languages using…

    • zahlmanDec 2024

      Oh, no, not this paper again.

      Please see https://boardgames.stackexchange.com/questions/58127/ for reference. The first picture there shows a game supposedly "won by Black", due to a refusal to acknowledge that Black's stones are hopelessly dead everywhere except the top-right of the board. The "exploit" that the adversarial AI has found is, in effect, to convince KataGo to pass in this position, and then claim that White has no territory. It doesn't do this by claiming it could possibly make life with alternating play; it does so, in effect, by citing a ruleset that doesn't include the idea of removing dead stones (https://tromp.github.io/go.html) and expects everything to be played out (using area scoring) for as long as either player isn't satisfied.

      Tromp comments: "As a practical shortcut, the following amendment allows dead stone removal" - but this isn't part of the formalization, and anyway the adversarial AI could just not agree, and it's up to KataGo to make pointless moves until it does. To my understanding, the formalization exists in large part because early Go programs often couldn't reliably tell when the position was fully settled (just like beginner players). It's also relevant on a theoretical level for some algorithms - which would like to know with certainty what the score is in any given position, but would theoretically have to already play Go perfectly in order to compute that.

      (If you're interested in why so many rulesets exist, what kinds of…

    • observationistMar 2026

      Combinators are math, and a little like Lisp - building functions from primitives and operations with the ability to apply them, where even the notion of variables are functions - functions all the way down.

      The y combinator is this: λf.(λx.x x)(λx.f(x x))

      Lambda diagrams get you visualizations like this:

      https://tromp.github.io/cl/diagrams.html

      When considering logic and functions, when thinking in the space of combinators, you can ask questions like "What is Plus times Plus" and have a sensible result.
      https://www.youtube.com/watch?v=RcVA8Nj6HEo

      Combinators are awesome.

      The site linked by OP is a specific collection of combinators with bird names, riffing on the "To Mock a Mockingbird" puzzle book and subsequent meme of giving combinators bird names.

    • squidgedcricketOct 2024

      There's a lot of chess configs, but there's a LOT of atoms in the observable universe. I suspect there's a few in the unobservable universe too.

      Chess configs = 4.8 x 10^44, Atoms > 10^70

      https://tromp.github.io/chess/chess.html https://physics.stackexchange.com/questions/47941/dumbed-down-explanation-how-scientists-know-the-number-of-atoms-in-the-universe

      You might be able to pull off a low-resolution lookup table. Take some big but manageable number N (e.g 10^10) and calculate the maximally even distribution of those points over the total space of chessboard configurations. Then make a lookup table for those configs. In play, for configs not in the table, interpolate between nearest points in the table.

    • sirabenJun 2024

      Yeah it terminates.

      A tiny 63 bit program[0] in this language represents a number unfathomably larger than not only ack(9,9), but the far larger Graham’s Number as well. It originates in a Code Golf challenge asking for the “Shortest terminating program whose output size exceeds Graham’s number”, answered by user Patcail and further optimized by user 2014MELO03. With one final optimization applied.

      Here's a really short program. Let's calculate 2 * 3

      (λn m s. n (m s)) (λf n. f (f n)) (λf n. f (f (f n))) eventually it terminates with

      λ s n.s (s (s (s (s (s n))))) which is just the church encoding of 6.

      [0] https://tromp.github.io/blog/2023/11/24/largest-number

    Related

    Ben Lynncrypto.stanford.edu/~blynn51 people

    All Hail Geometric Algebra

    Ben Lynn
    Personal · last shared 2026
    Kevin Buzzardma.imperial.ac.uk/~buzzard20 people

    Natural Number Game

    Kevin Buzzard
    Personal · last shared 2024
    David Keenandkeenan.com31 people

    To Dissect a Mockingbird: A Graphical Notation for the Lambda Calculus

    David Keenan
    Personal · last shared 2026
    woodrushwoodrush.github.io15 people

    Show HN: LambdaLisp – A Lisp interpreter that runs on lambda calculus

    woodrush
    Personal · last shared 2025
    John A. De Goesdegoes.net81 people

    Twitter's Fucked

    John A. De Goes
    Personal · last shared 2026
    Rob Pikecommandcenter.blogspot.com216 people

    Go: What we got right, what we got wrong

    Rob Pike
    Personal · last shared 2026
    Philip Wadlerwadler.blogspot.com26 people

    Howard on Curry-Howard

    Philip Wadler
    Personal · last shared 2025
    Lambda the Ultimatelambda-the-ultimate.org615 people

    Simon Peyton Jones Elected into the Royal Society Fellowship

    Lambda the Ultimate
    Publication · last shared 2026