Quite often, I stumble upon abstract algebra concepts like initial algebra, free algebra, and similar while reading papers on programming languages. For instance, in papers on algebraic data types, monads, separation logic, models of polymorphic lambda calculus, etc.

Where can I find materials that will introduce me to such concepts, i.e., ones that are related to programming languages and logics? Hopefully, the number of such materials would be small.

  • 1
    $\begingroup$ You need to be more specific. For example, give a couple of examples with context. $\endgroup$
    – Raphael
    Mar 23, 2015 at 6:22
  • $\begingroup$ @D.W. Sure. But the question isn't asking for that. $\endgroup$ Mar 23, 2015 at 10:31
  • $\begingroup$ @Raphael It's hard for a beginner to be more specific. The question asks for introductory texts that cover the listed topics and others that the asker is likely to come across. The asker doesn't know what other topics they will come across in the future so can't specify what those would be. This seems entirely reasonable to me. A good answer could be something like "X and Y introduce initial algebras, free algebras and the material you'll need to understand those. Before long, you'll probably also come across A, B and C, too, which are explained in Y and Z." $\endgroup$ Mar 23, 2015 at 10:36
  • $\begingroup$ I do not remember what books would be most appropriate for a painless introduction. My best recommendation is to ignore Wikipedia. Articles on these topics address people who have to be knowledgeable enough not to need the wikipedia articles. I am not sure what is the technical name for such a waste of time. These concepts are well defined with category theory, but there are more elementary and intuitive introductions. $\endgroup$
    – babou
    Mar 23, 2015 at 10:50
  • $\begingroup$ @D.W. Sure, single reference is probably too much to ask even for basic concepts. I will modify my question. $\endgroup$ Mar 23, 2015 at 13:50

1 Answer 1


Initial algebras and free algebras are basic concepts of category theory. Thus you may try the first chapters of [1] (in particular Section 2.2 Functional programming languages as categories) or the books [2] or [3].

[1] Category Theory for Computing Science by Michael Barr and Charles Wells

[2] Basic Category Theory for Computer Scientists by Benjamin C. Pierce.

[3] A taste of category theory for computer scientists by Benjamin C. Pierce.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.