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

Modularisation – coupling and cohesion

This is related to the second of the things requested by Jesper, which was encapsulation.  Encapsulation is a tool to use when designing software.  It’s a bit abstract, and I don’t think people always agree on what it means.  To me, encapsulation is part of the bigger term modularisation, which doesn’t immediately help because it’s … Continue reading Modularisation – coupling and cohesion