The Curious Engineer

All blogs / Functional / PL theory

raganwald.com

raganwald.com

Functional / PL theoryJavaScript / TypeScriptAlgorithms / data structuresEssays / personalEngineering blogs

’10’15’20’25
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

  1. New Yorker Cartoon, c. 2025
  2. Cryptographic techniques used by nCrypt Light in 1994

2022 1

  1. Mutual Recursion in Language

2021 1

  1. The Inner Osborne Effect

2020 1

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

2019 6

  1. Exploring Regular Expressions, Part II: Regular Languages and Finite-State Automata
  2. Exploring Regular Expressions and Finite-State Recognizers, Part I
  3. A Brutal Look at Balanced Parentheses, Computing Machines, and Pushdown Automata
  4. Ayoayo and Linear Recursion
  5. Structural Sharing and Copy-on-Write Semantics, Part II: Reduce-Reuse-Recycle
  6. Exploring Structural Sharing and Copy-on-Write Semantics, Part I

2018 10

  1. Alice and Bobbie and Sharleen and Dyck
  2. Pattern Matching and Recursion
  3. Ruby's Hashes and Perl's Autovivification, in JavaScript
  4. Why Y? Deriving the Y Combinator in JavaScript
  5. To Grok a Mockingbird
  6. The Eight Queens Problem... and Raganwald's Unexpected Nostalgia
  7. A Trick of the Tail
  8. Recursion? We don't need no stinking recursion!
  9. More State Machine ❤️: From Reflection to Statecharts
  10. How I Learned to Stop Worrying and ❤️ the State Machine

2017 9

  1. Truncatable Primes in JavaScript
  2. Closing Iterables is a Leaky Abstraction
  3. A Sequence Problem
  4. What's a Transducer?
  5. Having our cake and eating it too: "Using iterators to write highly composeable code"
  6. foldl, foldr, and associative order
  7. Turing Machines and Tooling, Part I
  8. The Lumberjane Song
  9. Time, Space, and Life As We Know It

2016 9

  1. Why Recursive Data Structures?
  2. From Higher-Order Functions to Libraries And Frameworks
  3. Anamorphisms in JavaScript
  4. From Mixins to Object Composition
  5. Why Are Mixins Considered Harmful?
  6. The Hubris of Impatient Sieves of Eratosthenes
  7. “We will encourage you to develop the three great virtues of a programmer: laziness, impatience, and hubris”
  8. “Programs must be written for people to read, and only incidentally for machines to execute”
  9. First-Class Commands (the annotated presentation)

2015 27

  1. This is not an essay about 'Traits in Javascript' (updated)
  2. JavaScript Mixins, Subclass Factories, and Method Advice
  3. super() considered hmmm-ful
  4. An ES6 function to compute the nth Fibonacci number
  5. Solving a Coding Problem with Iterators and Generators
  6. Getters, Setters, and Organizing Responsibility in JavaScript
  7. Extension Methods, Monkey-Patching, and the Bind Operator
  8. Method Advice in Modern JavaScript
  9. Method Decorators in ECMAScript 2015 (and beyond)
  10. Using ES.later Decorators as Mixins
  11. Purely Functional Composition
  12. Functional Mixins in ECMAScript 2015
  13. Prototypes are Objects (and why that matters)
  14. Classes are Expressions (and why that matters)
  15. De Stijl: How necessary are var, let, and const?
  16. OOP, JavaScript, and so-called Classes
  17. Carnac the Magnificent
  18. Hilbert's Grand JavaScript School (2015 Edition)
  19. Left-Variadic Functions in JavaScript
  20. Partial Application in ECMAScript 2015
  21. The Symmetry of JavaScript Functions (revised)
  22. (unlikely to be) The Last Word on Interviewing for a JavaScript Job
  23. Interviewing for a JavaScript Job
  24. Lazy Iterables in JavaScript
  25. The Quantum Electrodynamics of Functional JavaScript
  26. Tail Calls, Default Arguments, and Excessive Recycling in ES-6
  27. Destructuring and Recursion in ES-6

2014 20

  1. Why Why Functional Programming Matters Matters
  2. Fun with Named Functions in JavaScript
  3. 600 Months
  4. Chickens And Pigs
  5. I Can't Find Good Salespeople
  6. A JavaScript Constructor Problem, and Three Solutions
  7. Greenspunning Predicate and Multiple Dispatch in JavaScript
  8. Structs and ImmutableStructs
  9. Repost: Captain Obvious on JavaScript
  10. How to Trick the Gullible into Learning a New Programming Language
  11. JavaScript Values Algebra
  12. Mixins, Forwarding, and Delegation in JavaScript
  13. Class Hierarchies? Don't Do That!
  14. Future JS
  15. Writing OOP using OOP
  16. A Programmer's Story
  17. At home with the Bumblethwaites
  18. Private Methods In Ruby
  19. Prototypes Are Not Classes
  20. The New JavaScript Problem

2013 31

  1. Type-Fu Fighting
  2. Defactoring
  3. The Predicate Module Pattern
  4. Leaky Greenspunned Abstractions
  5. I hated, hated, hated this CoffeeScript
  6. It's a Mad, Mad, Mad, Mad World: Scoping in CoffeeScript and JavaScript
  7. Yes, JavaScript is a Lisp
  8. Unfinished Work #1: Bind-by-Contract
  9. Happy Birthday To Me
  10. Functional's Greatest Accomplishment
  11. Inelegance
  12. config ||= config
  13. Did you ever take that test yourself?
  14. When FP? And when OOP?
  15. Explicit vs. Clever
  16. High Level Trampolining
  17. Trampolines in JavaScript
  18. My Literate CoffeeScript Blogging Workflow
  19. The Interview
  20. Zee Hackenbush Bird
  21. Arity and Partial Function Application
  22. Six Questions
  23. Counting Crows (diversion)
  24. A Surreal Encounter with a Winged Elephant
  25. A long time ago, in a village far, far away
  26. What's the difference between Currying and Partial Application?
  27. Two Brief Points About CoffeeScript 1.5
  28. Implementing the Sieve of Eratosthenes with Functional Programming
  29. Hilbert's School Closed for Discriminatory Practices
  30. Hilbert's Grand JavaScript School
  31. Twenty Thirteen

2012 1

  1. Duck Programming

2008 2

  1. The Mouse Trap
  2. Billy Martin's Management Secret, a Play in Three Acts

2007 1

  1. We Have Lost Control Of The Apparatus