Hadrian Hughes
-
Why you should always use guard statements
The real world is messy, and real world software has to deal with that messiness. Guard statements are a pattern for performing complex checks without producing complex code.
2024-04-23
-
Understanding applicatives in Haskell
Beyond just "functors with functions inside", applicatives enable abstraction and composition of complex behaviours in terms of simple functions.
2024-04-10
-
Parsing left-recursion by recursive descent
Infinite recursion caused by left-recursive grammar is a common pitfall when implementing a recursive descent parser. By parsing to an intermediate representation and then reworking the result, you can overcome the problem while still producing the AST you actually want.
2024-03-25
-
On function composition in JavaScript
There is a desire for new options for function composition in JavaScript, but what is the best approach, and why now?
2024-03-06
-
Software development is not like surgery
In the operating theatre the surgeon never works alone. Should we as developers follow suit?
2024-02-19