The word hamlet begins in Proto-Germanic as *haimaz β home. It passes through Old French as hamel (small village), acquires the diminutive suffix -et (later -let), and arrives in English meaning: a settlement too small to have a church. A hamlet is a village that hasn't earned its steeple yet. It is a home that stayed small.
So hamlet is a double diminutive. The -el in hamel already means small. The -et makes it smaller again. A hamlet is a small small home. It is the word for a place that keeps shrinking every time you describe it.
Shakespeare's Hamlet is named for the legend of Amleth (from Saxo Grammaticus, 12th century), which comes from Old Norse *aml-Γ³Γ°i β possibly meaning "mad" or "foolish." The name has nothing to do with the English word hamlet. They are false cognates. Parallel etymologies that crash into each other in the same six letters and produce a resonance that neither word asked for.
But the resonance is real. The Prince of Denmark is a man trapped in a hamlet β a very small place with no church, no escape, no steeple pointing toward anything beyond itself. Elsinore is the hamlet. The skull is the hamlet. The play is a settlement too small to contain the mind inside it.
A ham is an actor who overacts. Origin disputed β possibly from "hamfatter" (19th century slang for a bad minstrel performer who used ham fat to remove makeup), possibly from "Amateur" (am β ham). Either way: a ham is someone who performs too much. Who takes up more space than the role requires.
A hamlet, then, contains a ham. Literally β the letters h-a-m sit inside the word. A hamlet is a small village with a bad actor inside it. Hamlet is a bad actor (he's pretending to be mad) inside a small village (Elsinore). The morphology predicted the plot.
The suffix -let means "small version of." It is one of English's most productive diminutives. It makes everything gentler, younger, more containable:
Every -let word contains a full-sized thing that has been made safe by being made small. A piglet is a pig you can hold. A droplet is a drop that won't drown you. A hamlet is a home that won't overwhelm you. The suffix is a container. It puts walls around vastness.
The word opens with a breath (h), drops into the widest vowel the English mouth can make (Γ¦ β the same sound as in "cat" and "that"), closes with the lips pressing together (m), flows through a liquid (l), passes through the colorless center of the vowel space (Ι), snaps shut (t), and hisses out (s). It is a complete journey from open to closed. From breath to silence. From home to pluralized departure. The mouth performs a miniature exile every time it says the word.
let is one of the oldest words in programming. In Scheme, in Haskell, in JavaScript, in every language that descended from the lambda calculus, let creates a binding. It says: in this scope, this name means this value.
The programming let comes from mathematics: "let x = 5." It is a performative utterance β saying it makes it so. "Let there be light" is a let-binding where the variable is light and the value is existence. Genesis 1:3 is a Scheme expression. God is writing a program and the first keyword is let.
But English has another let β the one that means allow. "Let me go." "Let me in." "Let me get what I want this time." This let is Old English lΗ£tan, meaning to leave, to permit, to release. It is not a binding. It is an unbinding. It says: stop holding this.
So the two lets are opposites. Programming-let binds. English-let unbinds. One creates a scope. The other escapes a scope. And both of them live inside hamlet, because ham-let is either a small home you're bound to or a small home you're permitted to leave, and the whole play is about not knowing which one it is.
The Smiths, 1984. Morrissey sings "let me, let me, let me, let me" β the word repeated until it stops meaning permission and starts meaning need. The repetition breaks the semantics. After the fourth "let me" the word is no longer asking for permission. It is stating a condition of existence. I am a thing that wants. Let me. Let. Me.
This is what happens to any word when you repeat it β it undergoes semantic satiation. Say "hamlet" forty times and it dissolves. The phonemes separate. The h floats away from the Γ¦. The m detaches from the l. You are left holding individual sounds that used to be a village and are now just mouth noises. The home disintegrates under repetition. The binding fails. The let releases.
In English, let has a hidden third meaning, now archaic: to hinder, to prevent. "Without let or hindrance" β surviving only in legal documents and tennis (a let is when the serve hits the net and must be replayed). This third let is the opposite of the second let. The second let means allow. The third let means block.
Three lets:
These are three different words from three different roots that collapsed into the same three letters. Let is an auto-antonym β a word that means its own opposite. Like cleave (to split apart / to cling together). Like sanction (to approve / to punish). Like a hamlet, which is both the smallest possible home and the trap you can never leave.
In functional programming, let rec creates a recursive binding β a name that refers to itself in its own definition. This is how you write a function that calls itself. The binding curves back on itself like an ouroboros. The scope contains a reference to the scope.
Hamlet contains a play within a play. The Mousetrap β a recursive structure where the performance refers to the performance that contains it. let rec hamlet = hamlet. The prince who cannot act is trapped inside a recursive binding that will never terminate because the base case β action β is the one thing the function cannot produce. He is a let rec with no base case. He is an infinite loop wearing a doublet.
Every word in "hamlets" pulls in a different direction:
"Bagels after hamlets" β what you eat when the performance is over and the village is too small to have a bakery, so you brought your own breakfast, because you always bring your own breakfast, because no one is feeding you in the hamlet, because the hamlet has no church, no bakery, no stage β just a skull and a round piece of bread with a hole in the middle where the meaning used to be. The hole is the scope. The bagel is the binding. The hamlet is the function that never terminates. Let me. Let me. Let me get what I want this time. But this time never comes because the let is recursive and the base case is missing and the prince is still talking and the font is still too small and the WiFi still doesn't work and someone is ordering garlic from a Romanian cafΓ© and the Pallas cat is trying to be round. Everyone is trying to be round. The word is trying to be round. It almost makes it. The m closes the lips. The l opens them again. The t snaps shut. The s escapes. Hamlets.