An introduction to parameterised types

This article is about parameterised types, which are also known as generics or parametric polymorphism.  I first came across them in the functional programming language ML, but they have spread beyond the functional programming world, to languages like Java, C#, and TypeScript. Parameterised types let you define a family of similar but different types What … Continue reading An introduction to parameterised types

Recursion and iteration – an introduction to recursion

This is the second article in a series about recursion and iteration. Introduction to iterationIntroduction to recursionMutual recursion and tail recursionBlurring the linesLoop unrolling I will assume that you have already read the article on iteration, and this article will focus on recursion. Like iteration, recursion is a way of repeatedly doing the same or … Continue reading Recursion and iteration – an introduction to recursion

Recursion and iteration – an introduction to iteration

This is the first of a series of articles about recursion and iteration Introduction to iterationIntroduction to recursionMutual recursion and tail recursionBlurring the linesLoop unrolling Recursion and iteration are both techniques for doing some work (or similar work) repeatedly, so that you can solve a bigger problem. This could be things like summing all the … Continue reading Recursion and iteration – an introduction to iteration

Putting your code onto Azure using Terraform and Azure DevOps Pipelines

This article is about using two tools – Terraform from HashiCorp and Azure DevOps Pipelines (DOP) – to get code into Azure.  It won’t go into details of either tool, but will describe the problem they’re trying to solve, and how they work together to solve it.  Hopefully this will give you the necessary context … Continue reading Putting your code onto Azure using Terraform and Azure DevOps Pipelines

Computer science while washing the dishes 1: The Queue

Calvin and Hobbes said that there’s treasure everywhere.  For a sad geek like me, there’s also computer science everywhere.  Doing the washing up the old school way involves a metaphor for the computer science concept of queue, if you think of people collaborating around the draining board.  Quite a lot of this is a statement … Continue reading Computer science while washing the dishes 1: The Queue