A study in self-reference After Diego Velázquez
The painting is in the painting.
Paint a smaller room inside this one. Repeat, then hang the mirror to make the room repeat itself.
Fixed-point combinators
It needs its own name.
Give it a mirror.
In the lambda calculus nothing has a name, so a function cannot call itself. It can only be handed things. Hand it a copy of itself and it can recurse once. Hand it a copy of the copy and it can recurse twice. That is Velázquez’s problem exactly: the picture holds the room, the room holds the picture, and somebody has to paint every level by hand.
The Y combinator is the mirror. : it hands to itself as deep as the argument needs, without a single name. is a fixed point of , a value returns unchanged, which is why the painting of the painting is the painting.
You already trust fixed points. A layout engine iterates until nothing moves. A type checker widens until the types stop changing. A build is done when running it again changes nothing. The startup accelerator borrowed the name for the shape of the idea: a program that runs programs.
If you stepped into the mirror, that was your browser’s own camera. The picture never left this page.
