There are at least three distinct conceptual roles which vectors and vector spaces play in mathematics:

**A vector is a column of numbers.**This is the way vector spaces appear in quantum mechanics, sections of line bundles, elementary linear algebra, etc.**A vector is a weighted direction in space.**Vector spaces of this kind are often the infinitesimal data of some global structure, such as tangent spaces to manifolds, Lie algebras of Lie groups, and so on.**A vector is an element of a module over the base ring/field.**

What is a module? The basic idea is that a module $V$ is an object equipped with an action by a monoid $A$. (This is closely related to the concept of a representation of a group.)

Let’s take an example that you’re familiar with, vector spaces, and generalize it to get some intuition for working with modules.

Fields $\hookrightarrow$ Rings

If $K$ is a field, then a $K$-vector space (a vector space over $K$) $\equiv$ $K$-module.

$K$-Vector Spaces $\hookrightarrow$ $K$-modules

*For the categorically minded: a familiar example of a module is a vector space $V$ over a field $K$; this is a module over $K$ in the category of abelian groups: every element of $K$ acts on the vector space by a multiplication of vectors, and this action respects the addition of vectors.*

Tensors play analogous conceptual roles.

**A tensor is a multidimensional array of numbers.****A tensor is multiple weighted directions in space.****A tensor is an element of a free monoid over the base ring.**(If you don’t know what a free monoid is, don’t worry. I’ll go over them later in this post.)

An explanation of tensors as type constructors is postscript for fellow Haskell enthusiasts. Continue reading A Gentle Introduction to Tensors and Monoids