raganwald.com
banner
raganwald.functional.cafe.ap.brid.gy
raganwald.com
@raganwald.functional.cafe.ap.brid.gy
Reg "raganwald" Braithwaite's account for discussing functional programming and shamelessly plugging essays about programming.

Follows are NOT endorsements. This […]

🌉 bridged from ⁂ https://functional.cafe/@raganwald, follow @ap.brid.gy to interact
Try APL in your browser!

But first, a little motivation to get you started: Game of Life in APL. Pay attention to how interactive APL programming is completely different from other ✌🏽dynamic✌🏽 languages like Ruby or JavaScript. It's much more like Smalltalk or LISP […]
Original post on functional.cafe
functional.cafe
February 10, 2026 at 1:44 PM
"The Genius of Lisp" from @cdegroot

https://www.kobo.com/ca/en/ebook/the-genius-of-lisp
January 23, 2026 at 1:39 PM
January 18, 2026 at 4:35 PM
JavaScript Allongé was written in this converted semi-detached cottage.
January 16, 2026 at 3:55 PM
Life, coffee, and blueberry pie.

https://conwaylife.com/book/
January 16, 2026 at 2:55 PM
“Have you ever noticed how everybody writing their own abstractions are creating unmaintainable magic, and everybody refusing to write their own abstractions are copypasta merchants?”

—Staff Engineer George Carlin
December 24, 2025 at 1:28 PM
“From Naked Objects to Naked Functions:”

https://dzone.com/articles/from-naked-objects-to-naked-functions
December 18, 2025 at 8:50 PM
“So. Reginald. Welcome to the couch!”

A post-talk interview after giving a presentation at Nordic.js in 2014. Great format, the interview was live after the talk.

https://www.youtube.com/watch?v=RfMWgtix5A4
December 5, 2025 at 7:08 PM
Although many people say that JavaScript Allongé is a book about functional programming, it’s actually a book about how functions as first-class entities facilitate composition.

So... Although Kleisli arrows allow for the composition of functions that work […]

[Original post on functional.cafe]
December 5, 2025 at 2:43 PM
Functional Quadtrees
Comments
lbjgruppen.com
December 4, 2025 at 5:07 PM
A personal favourite. And yes there *is* a Mister Braithwaite in “Enter the Dragon!”

https://raganwald.com/2011/11/01/williams-master-of-the-comefrom.html
December 3, 2025 at 3:03 AM
Raganwald does a podcast with Codegram:

https://www.youtube.com/watch?v=gbL4NDOLs3c
December 3, 2025 at 2:26 AM
"Is there anything older than jQuery?"

Combinatorial Logic.

"Surely Combinatorial Logic is too old to ever appear in a web page's code."

You would think not. And yet...

https://raganwald.com/JQuery-Combinators/
jQuery Combinators by raganwald
raganwald.com
November 29, 2025 at 7:33 PM
At the turn of the century, OG blogger Joel Spolsky posited the "Joel Test," twelve simple yes/no questions that defined a reasonable-by-the-standards-of-the-day local optimum for shipping software. Some seem ridiculously obvious today, but weren't standard […]

[Original post on functional.cafe]
November 24, 2025 at 3:52 PM
November 15, 2025 at 1:59 PM
Two questions to ask about every abstraction, and to answer in every pull request introducing an abstraction:

1. What does this make:
- possible?
- practical?
- easy?
2. At what expense?
November 14, 2025 at 4:22 PM
November 9, 2025 at 2:08 PM
A Brutal Look at Balanced Parentheses, Computing Machines, and Pushdown Automata

https://raganwald.com/2019/02/14/i-love-programming-and-programmers.html
November 8, 2025 at 7:52 PM
Forget algebraic types, the Type Lords use Gallifrean types.
November 8, 2025 at 5:11 PM
An essay written in a now-dated style: "Alice and Bobbie and Sharleen and Dyck."

https://raganwald.com/2018/11/14/dyck-joke.html
Alice and Bobbie and Sharleen and Dyck
raganwald.com
November 8, 2025 at 4:48 PM
Reposted by raganwald.com
Graphical interfaces optimized for "time to first render" that bounce around as pieces subsequently load offers a great example of software trying to make *itself* look good at the expense of the user's productivity and cognitive burden.
November 4, 2025 at 7:11 PM
There are two ways to write production #typescript. One is to use such advanced type features that if it compiles at all, you can be sure there are no obvious bugs. The other is to write such straightforward, extremely simple types that there are obviously no bugs.

Only a third method works.
November 6, 2025 at 2:29 PM