Category theory has its own share of quirky notations and conventions. Let's start off by exploring some of the terminology used in category theory, in a language understandable by us mortal programmers.
A category is formally defined as a collection of objects and morphisms. In simple terms, objects represent abstract types, and morphisms represent functions that convert between these types. A category is thus analogous to a programming language that has a few types and functions, and has two basic properties:
There exists an identity morphism for each object in the category. In practice, a single identity function can be used to represent the identity morphism for all given objects, but this is not mandatory.
Morphisms in a category can be composed together into a new morphism. In fact, a composition of two or more morphisms is an optimization of applying the individual morphisms one at a time. In this way, the composition of several morphisms is said to commute...