All blogs / Functional / PL theory
raganwald.com
Functional / PL theoryJavaScript / TypeScriptAlgorithms / data structuresEssays / personalEngineering blogs
- Posts
- 121 from 12 Sep 2007 to 27 Apr 2023
- Posting
- quiet since 2023
- Kind
- personal blog
- Feed
- https://raganwald.com/atom.xml
2023 2
2022 1
2021 1
2020 1
2019 6
- 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
2018 10
- 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
2017 9
- 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
2016 9
- 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)
2015 27
- 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
2014 20
- 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
2013 31
- 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