Skip to content

Functor

A structure-preserving map between categories that carries objects and morphisms while respecting identities and composition — the two axioms that make it a licence to transport theorems from one category to another along its rails.

Version
v5 · 2026-09-28 · History · 1 correction
Domain-specific #
436
Domain group
Formal Sciences
Origin domain
Mathematics
Subdomain
Category Theory → Mathematics

Core Idea

A functor is a structure-preserving mapping between categories — a translation carrying not just objects but the relational fabric connecting them. A functor F : C to D assigns to each object X an object F(X), and to each morphism f : X to Y a morphism F(f) : F(X) to F(Y), subject to two axioms: F(id) = id (identity preservation) and F(g o f) = F(g) o F(f) (composition preservation). Those axioms are the entire content: they ensure the translation respects how morphisms chain, so structural properties of C provably map to structural properties of D.

How would you explain it like I'm…

The Arrow-Keeping Copier

Imagine a drawing with dots and arrows between them, like a map of paths between playgrounds. A functor copies it into a new drawing: every dot gets a partner dot, and every arrow gets a partner arrow. If two arrows join up to make a longer trip, their copies join up to make the copy of that same trip.

Connection-Keeping Translation

Mathematicians study 'categories': collections of things together with arrows showing how you can go from one thing to another, where arrows can be chained. A functor is a translator from one category to another. It sends each thing to a thing, and each arrow to an arrow, following two rules: a 'stay put' arrow becomes a 'stay put' arrow, and chaining two arrows then translating gives the same result as translating first and then chaining. Because it keeps the connections, facts proved in one world can be carried over to the other. Programmers use the same rules when they apply a function to every item inside a list or box.

Structure-Preserving Category Map

A functor is a structure-preserving map between categories, where a category is a collection of objects plus morphisms (arrows) between them that can be composed. A functor F sends each object X to F(X) and each morphism f: X → Y to F(f): F(X) → F(Y). It must obey two laws: identity arrows map to identity arrows, and F(g ∘ f) = F(g) ∘ F(f). Those laws are the whole definition, and they guarantee the translation respects how arrows chain. For instance, the fundamental group functor turns shapes into groups and continuous maps into group homomorphisms, so some topology problems become algebra problems. In Haskell, the Functor class requires fmap id = id and fmap (g . f) = fmap g . fmap f, the same two laws.

 

A functor F: C → D between categories assigns to each object X of C an object F(X) of D, and to each morphism f: X → Y a morphism F(f): F(X) → F(Y), such that F(id_X) = id_F(X) and F(g∘f) = F(g)∘F(f). These two axioms are the whole definition, and they guarantee that how morphisms chain in C is mirrored in D, so structural facts transfer along the functor. The fundamental group π₁ from pointed spaces to groups sends continuous basepoint-preserving maps to group homomorphisms, converting topological questions into algebraic ones; Brouwer's fixed-point theorem and covering-space classification follow from functoriality. Homology functors H_n do the same into abelian groups, with homotopic maps inducing the same homomorphisms. In Haskell, the Functor class requires fmap id = id and fmap (g . f) = fmap g . fmap f, giving List, Maybe, Tree, and IO a uniform mapping operation. A TQFT is itself defined as a functor from a cobordism category to vector spaces. Functors also organize higher structure: functor categories, natural transformations between functors, and adjunctions.

Scope of Application

Because a functor is a mathematical construct, not a causal mechanism, it applies literally wherever its precondition holds: both source and target modelled as categories.

  • Algebraic topology — the fundamental-group functor and homology functors, converting topological questions into group-theoretic ones.
  • Algebraic geometry, representation theory, sheaf theory — structure-preserving translations organizing whole theories.
  • Functional programming — the Functor type class, giving List, Maybe, Tree, Future a uniform fmap.
  • Mathematical physics — a TQFT is a functor from cobordisms to vector spaces.
  • Programming-language and database theory — denotational semantics and schema mappings/ologs.

Clarity

Naming the functor sharpens the difference between a translation that preserves the relational fabric and one that merely pairs objects. It turns trustworthiness into a checkable property — does the translation respect identities and composition? — so a correspondence that silently breaks composition is exposed as matching surface features. This makes available a finer question than "are these domains analogous?": which categorical features does this functor preserve? — with "preserves limits but not colimits," "faithful but not full" a precise vocabulary controlling which results port.

Manages Complexity

Mathematics is dense with translations between systems, each otherwise a bespoke object argued case by case. The functor compresses that sprawl into a uniform two-axiom checklist: a translation either preserves identities and composition or it does not, and the moment it does, the whole apparatus of category theory applies at once. The analyst tracks two facts about the action on morphisms, plus a preservation profile of feature flags off which which-theorems-travel reads directly — collapsing a menagerie of constructions to one pattern proved once.

Abstract Reasoning

The functor licenses a diagnostic move (distinguishing a structure-preserving translation from a bare object-pairing by interrogating the action on morphisms), a boundary-drawing move (verifying the two axioms to license theorem transfer), an interventionist move (transporting a hard problem across the functor's rails into a tractable category), a predictive move (reading which results travel off the preservation profile), and a unifying move (collapsing a menagerie of constructions to one pattern and proving a guarantee once).

Knowledge Transfer

Within mathematics and mathematized theoretical computer science the functor transfers as mechanism, its full content — the two axioms, the theorem-transport licence, the preservation profile, and the apparatus of natural transformations and adjunctions — carrying across the subfields, often under the same name, because every target is itself modelled as a category. Beyond that orbit the functor does not travel: the portable kernel it delivers — a translation respecting relational fabric, not merely objects — is owned by existing primes Isomorphism, Homomorphism, and Transformation, with Compositionality the neighbour it is often confused with. Outside the categorical orbit "functor" degrades to "any map between domains," dropping the composition axiom that is its whole content.

Relationships to Other Abstractions

Current abstraction Functor Domain-specific

Parents (2) — outgoing typed relations

  • Functor presupposes Category Prime

    A Functor requires source and target Categories because its entire content is preserving their objects, arrows, identities, and composition.

  • Functor includes Function (Mapping) Prime

    A Functor contains deterministic object and arrow functions whose coordinated images are constrained by the identity and composition laws.

Children (9) — abstractions linked here by typed relations

  • Amnestic Functor Domain-specific is a kind of Functor

    An Amnestic Functor is a Functor that reflects target identities among source isomorphisms.

  • Cubical Set Domain-specific is a kind of Functor

    Functor. A cubical set is literally a contravariant functor from a cube category to Set.

  • Effaceable Functor Domain-specific is a kind of Functor

    An effaceable additive functor is a functor constrained by every-object monic effacement.

  • Profunctor Domain-specific is a kind of Functor

    Profunctor is a strict kind of Functor: its frozen identity entails the parent's defining structure while adding domain-specific restrictions.

  • Simplicial Presheaf Domain-specific is a kind of Functor

    Simplicial Presheaf strictly instantiates domain_specific:functor.

Hierarchy paths (4) — routes to 4 parentless roots

Neighborhood in Abstraction Space

Functor sits in a moderately populated region (48th percentile for distinctiveness): it has near-neighbors but no dense thicket of look-alikes.

Family — Categories, Sheaves & Homotopy (21 abstractions)

Nearest neighbors

Computed from structural-signature embeddings · 2026-10-25