Back to directory

Rabbit-hole #6: The Sage Bird -- Y Combinators in an Eager Array Language

A technical blog post deriving the Y combinator as a composition of combinator birds in an array language, and examining how eager evaluation changes fixed-point recursion compared with the usual lazy telling.

Visit website (opens in a new tab)blog.softwarewrighter.com
Rabbit-hole #6: The Sage Bird -- Y Combinators in an Eager Array Language

This post works through the Y combinator using Raymond Smullyan's combinatory-logic birds, showing it as a composition of three simpler combinators that reduces to the classical lambda-calculus form and satisfies the usual fixed-point equation. It then applies this to a recursive factorial function to demonstrate the combinator in practice.

The post examines what changes when the same construction runs in sw-MLPL, an eager array language in the APL lineage, rather than a lazy language, since the classical Y combinator's self-application does not terminate under eager evaluation, and discusses what the APL tradition does instead to get recursion without it. It links to a live in-browser demo of the combinators, to Smullyan's book To Mock a Mockingbird as background reading, and to the relevant lesson and source file in the author's own study repository.

More in Tutorials

See all 478
  • BootLife

    github.com

    Conway's Game of Life implemented to run directly from a 512-byte x86 boot sector in assembly, using VGA memory itself as the simulation grid.

  • System Design Atlas

    atlas-sysdes.vercel.app

    A free reference of worked system design problems with interactive architecture diagrams, covering ranked designs such as a feed, a chat app, a URL shortener, and a rate limiter, plus pages on the technologies behind them.

  • A technical article showing how to call TypeSafe.ai's Jev decision model from a TanStack Start server route through TanStack AI's Vercel AI Gateway adapter to build a typed routing endpoint.