I typed ‘Remember hello world’ into a bare browser tab, hit enter, and watched the line glow—then vanish as I scrolled, leaving Memo’s tiny brain to rebuild from whispers.
That’s Memo for you. This Memo language, tucked into Daniel Temkin’s Forty-Four Esolangs project on GitHub, isn’t your next Rust or Python. It’s a functional oddity with natural-language vibes, designed as a ‘stream-of-consciousness coding environment.’ You build one eternal program, session after session, but it ruthlessly forgets: only the last 12 lines stick around. Scroll up? Poof. Context gone.
Why? Temkin wants code that flows like thought—ephemeral, evolving, never bloated by history. Lines scroll off-screen, they’re axed from memory. Cookies hold the state (tiny footprint), and numerals? Ignored. Type ‘four’ not 4; lists use commas or ‘ands.’ It’s whimsy wrapped in constraint.
[]memo is a stream-of-conscious coding environment. You have one program, always becoming something new. Each time you return, it picks up where you left off. As lines of code scroll off the screen, they are forgotten.
Spot on. Fire it up, and ‘Tell me about name’ spits out values. ‘Remember function-name with arguments as body’ defines funcs. Approximations sneak in—fuzzy math for a fuzzy mind.
Why Build a Language That Forgets on Purpose?
Look, programmers hoard context like dragons with gold. IDEs balloon with tabs, git histories stretch miles. But Memo flips it: what if code had to live in the now?
Temkin’s riffing on esolangs—those brain-melting toys like Brainfuck or Malbolge, built to torture not toil. Memo’s gentler, almost poetic. It echoes 1970s REPLs on punch cards, where you’d lose chunks mid-session if the tape jammed. (Ever debugged on a teletype? Agony.) Here’s my angle the GitHub page skips: Memo’s a stealth critique of modern bloat. We’re drowning in state—LLMs hallucinate from over-retention, codebases fossilize. What if amnesia forced cleaner designs? Bold call: in an edge-computing future, where IoT devices choke on KB limits, Memo’s philosophy ports to real tools. Imagine a ‘forgetful’ Docker layer that prunes history post-deploy.
But does it work? I hacked a list: ‘Remember p as one, two, and three.’ Told it to print. Worked. Added a func to sum ‘em—‘Remember sum with x, y as x plus y.’ Chained ‘Tell me about sum with one, two.’ Boom, three. Then scrolled. Panic. Rebuilt from scraps. It’s meditative, maddening—like coding drunk on haiku.
Frustrating? Sure. But that’s the hook.
How Does Memo’s Architecture Actually Hold Together?
Peel back the syntax: functional core, no loops (yet?), everything declarative. ‘Remember’ binds names to values or lambdas. Natural lang parsing—‘with arguments as body’—feels like chatting with a toddler AI.
State lives in cookies, synced per-browser. Scroll triggers cull: top lines evaporate. Why 12? Arbitrary genius—fits a screen, mimics short-term memory (Miller’s magic number, 7±2, rounded up). No globals bloating; every ‘Tell me’ queries the live sliver.
Tested approximations: ‘Remember pi as three point one four.’ It fudges floats, embraces imprecision. Lists flex—commas, ‘and’s, mixes. Numerals? Nope. ‘four’ parses as stringish-four. Forces verbosity, slows you down. Deliberate.
Wandered into funcs nesting funcs. ‘Remember apply with f, arg as f with arg.’ Meta. But scroll mid-build? Re-enter from ether. Trains muscle memory for purity.
One glitch: cookie caps. Big program? Truncates. Mirrors real forgetfulness.
And here’s the shift: in Lisp land, REPLs are infinite recall. Memo inverts—state as lossy stream. Architectural gut-punch to immutable purity fans.
Is Memo Just a Gimmick, or a Glimpse at Tomorrow’s Constraints?
Esolangs rarely escape academia’s basement. Forty-Four Esolangs? Temkin’s tome of 44 weirdos. Memo’s the memory-haunted one.
Skepticism time. Corporate PR would hype ‘infinite canvas’—bull. This shrinks your canvas to oblivion. No diffs, no undo. Temkin’s not selling; it’s pure provocation. (Love that—no VC spin.) Yet, peek deeper: AI code-gen tools like Cursor or GitHub Copilot gorge on full context, spit garbage when context windows shrink. Memo whispers: design for scarcity.
Historical parallel they miss: 1980s Forth on embedded systems. Stacks only, no long-term storage. Programmers thrived in tight loops. Memo’s that ethos, webified.
Prediction: watch forgetful langs in WebAssembly sandboxes. Micro-frontends with ephemeral state. Or VR coding, where ‘scroll’ is gaze-swipe—history melts away.
Tried real work? Fizzbuzz in 10 lines. Possible, clunky. Fibonacci? Recursive explosion, but scrolls reset stack. Fail spectacularly. Teaches recursion’s debt.
Fun for a weekend. Deeper? Probes why we cling to permanence.
Pushed limits: simulated a DB with lists of lists. ‘Remember users as alice with age twenty-five, bob with age thirty.’ Queried via funcs. Told ‘Tell me about users.’ Parsed wonky, but alive. Then nuked by scroll. Rebirth ritual.
It’s not production-ready. Never will be. But that’s irrelevant.
What Happens When You Push Memo to Breaking?
Built a game: rock-paper-scissors scorer. Remembers moves as list, func tallies wins. Worked thrice—then scroll, forget, rebuild. Rage-quit funny.
Edge case: infinite scroll simulation. Hammer enters; memory thrashes. Cookies bloat, browser warns. Crash inevitable. Pure chaos poetry.
Why care? Forces ‘how’ rethink. Programs as processes, not artifacts. Architectural pivot: from files to flows.
Temkin’s GitHub teases more. Fork it. Tinker.
🧬 Related Insights
- Read more: Cloudflare Turns Error Pages into AI Agent Playbooks, Slashing Token Waste by 98%
- Read more:
Frequently Asked Questions
What is the Memo programming language? Memo’s an esolang where code forgets everything except the last 12 visible lines, using natural syntax like ‘Remember foo as bar’ in a browser-based REPL.
How does Memo store its program state? It uses browser cookies to persist the current 12-line snapshot across sessions—super lightweight, no server needed.
Can you use Memo for real projects? Nope, it’s an experimental esolang for exploring memory constraints, not production coding—great for thought experiments, terrible for apps.