Writing a strongly typed flip function in TypeScript I've talked about flip functions before. At the request of a reader, it's time to explore a more robust, strongly typed version. Let's dive in.
Understanding a catamorphism (by writing a simple one) A lot of the time, people haven't heard of catamorphisms, or misunderstand what it is. Let's make it simple, and better yet, let's write one on our own!
Understanding isomorphisms by writing some in TypeScript I have mentioned isomorphisms before, but left it at a high level. Is there only one isomorphism from a type to another? How do we write them? Time to dig in.
Why my functions are usually curried Most functions I write are curried. Some people are put off by its unfamiliarity, while others love it. Are you scared? Let's unmask the spooky ghost and see it for what it is, scooby-doo style.
Abstractions, composition, and modularity A lot of the time, code is about sharing ideas, in addition to solving problems. In code, ideas are most often expressed as abstractions. And solving a problem is usually building up a solution using several small ideas put together. Interested?
On the ordering of function arguments A lot of people think I nitpick when I talk about the order of arguments in a function. Let's try to put an end to that!
Building strongly typed vectors and matrices in TypeScript Recently, I came across a problem where I had to generate primitive Pythagorean triples. Much to the wrath of several people, I’m gonna…
Optimizing the brute-force search for an n-queens solution In this post, we optimize our brute force search for solutions to n-queens problems for a few small boards.
Solving the n-queens problem with brute-force search In this post, we take the brute force and other abstractions we created earlier, to solve the n-queens problem for a relatively small n.
Solving problems with simple yet powerful abstractions in Python A series of posts on solving problems with simple yet powerful abstractions in Python. We explore a few algorithms.