RSS.Social

raganwald.com

follow: @[email protected]

Posts

New Yorker Cartoon, c. 2025

Cryptographic techniques used by nCrypt Light in 1994

Mutual Recursion in Language

The Inner Osborne Effect

Remembering John Conway's FRACTRAN, a ridiculous, yet surprisingly deep language

Exploring Regular Expressions, Part II: Regular Languages and Finite-State Automata

Exploring Regular Expressions and Finite-State Recognizers, Part I

A Brutal Look at Balanced Parentheses, Computing Machines, and Pushdown Automata

Ayoayo and Linear Recursion

Structural Sharing and Copy-on-Write Semantics, Part II: Reduce-Reuse-Recycle

Exploring Structural Sharing and Copy-on-Write Semantics, Part I

Alice and Bobbie and Sharleen and Dyck

Pattern Matching and Recursion

Ruby's Hashes and Perl's Autovivification, in JavaScript

Why Y? Deriving the Y Combinator in JavaScript

To Grok a Mockingbird

The Eight Queens Problem... and Raganwald's Unexpected Nostalgia

A Trick of the Tail

Recursion? We don't need no stinking recursion!

More State Machine ❤️: From Reflection to Statecharts

How I Learned to Stop Worrying and ❤️ the State Machine

Truncatable Primes in JavaScript

Closing Iterables is a Leaky Abstraction

A Sequence Problem

What's a Transducer?

Having our cake and eating it too: "Using iterators to write highly composeable code"

foldl, foldr, and associative order

Turing Machines and Tooling, Part I

The Lumberjane Song

Time, Space, and Life As We Know It

Why Recursive Data Structures?

From Higher-Order Functions to Libraries And Frameworks

Anamorphisms in JavaScript

From Mixins to Object Composition

Why Are Mixins Considered Harmful?

The Hubris of Impatient Sieves of Eratosthenes

“We will encourage you to develop the three great virtues of a programmer: laziness, impatience, and hubris”

“Programs must be written for people to read, and only incidentally for machines to execute”

First-Class Commands (the annotated presentation)

This is not an essay about 'Traits in Javascript' (updated)

JavaScript Mixins, Subclass Factories, and Method Advice

super() considered hmmm-ful

An ES6 function to compute the nth Fibonacci number

Solving a Coding Problem with Iterators and Generators

Getters, Setters, and Organizing Responsibility in JavaScript

Extension Methods, Monkey-Patching, and the Bind Operator

Method Advice in Modern JavaScript

Method Decorators in ECMAScript 2015 (and beyond)

Using ES.later Decorators as Mixins

Purely Functional Composition

Functional Mixins in ECMAScript 2015

Prototypes are Objects (and why that matters)

Classes are Expressions (and why that matters)

De Stijl: How necessary are var, let, and const?

OOP, JavaScript, and so-called Classes

Carnac the Magnificent

Hilbert's Grand JavaScript School (2015 Edition)

Left-Variadic Functions in JavaScript

Partial Application in ECMAScript 2015

The Symmetry of JavaScript Functions (revised)

(unlikely to be) The Last Word on Interviewing for a JavaScript Job

Interviewing for a JavaScript Job

Lazy Iterables in JavaScript

The Quantum Electrodynamics of Functional JavaScript

Tail Calls, Default Arguments, and Excessive Recycling in ES-6

Destructuring and Recursion in ES-6

Why Why Functional Programming Matters Matters

Fun with Named Functions in JavaScript

600 Months

Chickens And Pigs

I Can't Find Good Salespeople

A JavaScript Constructor Problem, and Three Solutions

Greenspunning Predicate and Multiple Dispatch in JavaScript

Structs and ImmutableStructs

Repost: Captain Obvious on JavaScript

How to Trick the Gullible into Learning a New Programming Language

JavaScript Values Algebra

Mixins, Forwarding, and Delegation in JavaScript

Class Hierarchies? Don't Do That!

Future JS

Writing OOP using OOP

A Programmer's Story

At home with the Bumblethwaites

Private Methods In Ruby

Prototypes Are Not Classes

The New JavaScript Problem

Type-Fu Fighting

Defactoring

The Predicate Module Pattern

Leaky Greenspunned Abstractions

I hated, hated, hated this CoffeeScript

It's a Mad, Mad, Mad, Mad World: Scoping in CoffeeScript and JavaScript

Yes, JavaScript is a Lisp

Unfinished Work #1: Bind-by-Contract

Happy Birthday To Me

Functional's Greatest Accomplishment

Inelegance

config ||= config

Did you ever take that test yourself?

When FP? And when OOP?

Explicit vs. Clever

High Level Trampolining

Trampolines in JavaScript

My Literate CoffeeScript Blogging Workflow

The Interview

Zee Hackenbush Bird

Arity and Partial Function Application

Six Questions

Counting Crows (diversion)

A Surreal Encounter with a Winged Elephant

A long time ago, in a village far, far away

What's the difference between Currying and Partial Application?

Two Brief Points About CoffeeScript 1.5

Implementing the Sieve of Eratosthenes with Functional Programming

Hilbert's School Closed for Discriminatory Practices

Hilbert's Grand JavaScript School

Twenty Thirteen

Duck Programming

The Mouse Trap

Billy Martin's Management Secret, a Play in Three Acts

We Have Lost Control Of The Apparatus