Category theory is a branch of pure mathematics that is becoming an increasingly important tool in theoretical computer science, especially in programming language semantics, domain theory, and concurrency, where it is already a standard language of discourse. Assuming a minimum of mathematical preparation, Basic Category Theory for Computer Scientists provides a straightf Category theory is a branch of pure mathematics that is becoming an increasingly important tool in theoretical computer science, especially in programming language semantics, domain theory, and concurrency, where it is already a standard language of discourse. Assuming a minimum of mathematical preparation, Basic Category Theory for Computer Scientists provides a straightforward presentation of the basic constructions and terminology of category theory, including limits, functors, natural transformations, adjoints, and cartesian closed categories. Four case studies illustrate applications of category theory to programming language design, semantics, and the solution of recursive domain equations. A brief literature survey offers suggestions for further study in more advanced texts.

# Basic Category Theory for Computer Scientists

Category theory is a branch of pure mathematics that is becoming an increasingly important tool in theoretical computer science, especially in programming language semantics, domain theory, and concurrency, where it is already a standard language of discourse. Assuming a minimum of mathematical preparation, Basic Category Theory for Computer Scientists provides a straightf Category theory is a branch of pure mathematics that is becoming an increasingly important tool in theoretical computer science, especially in programming language semantics, domain theory, and concurrency, where it is already a standard language of discourse. Assuming a minimum of mathematical preparation, Basic Category Theory for Computer Scientists provides a straightforward presentation of the basic constructions and terminology of category theory, including limits, functors, natural transformations, adjoints, and cartesian closed categories. Four case studies illustrate applications of category theory to programming language design, semantics, and the solution of recursive domain equations. A brief literature survey offers suggestions for further study in more advanced texts.

Compare

4out of 5Sandy Maguire–Terse. Maybe too terse, but a lot of my issues would have been resolved had I realized there was an appendix of notation at the back of the book. Serves as a pretty solid introduction to category theory, but provides absolutely no indication as to *why one might want to know category theory*. The treatment is primarily for organizing ones thoughts about abstract structures rather than actually working with them. The book very briefly mentions representability, with no discussion of the Yoneda le Terse. Maybe too terse, but a lot of my issues would have been resolved had I realized there was an appendix of notation at the back of the book. Serves as a pretty solid introduction to category theory, but provides absolutely no indication as to *why one might want to know category theory*. The treatment is primarily for organizing ones thoughts about abstract structures rather than actually working with them. The book very briefly mentions representability, with no discussion of the Yoneda lemma (which I understand to be one of the more useful parts of category theory). I read this as part of MIRI's recommended reading list.

5out of 5Forest Tong–I really enjoyed the first two chapters, which provide an extremely brief and accessible introduction to basic concepts of category theory (products, equalizers, functors, adjoints, etc.) with good exercises. However, the third chapter, which discusses applications to computer science, predominantly consisted of a lengthy theoretical discussion of recursive domain equations requiring background in domain theory, which I lack. I also wish the author had talked more about the connection between ca I really enjoyed the first two chapters, which provide an extremely brief and accessible introduction to basic concepts of category theory (products, equalizers, functors, adjoints, etc.) with good exercises. However, the third chapter, which discusses applications to computer science, predominantly consisted of a lengthy theoretical discussion of recursive domain equations requiring background in domain theory, which I lack. I also wish the author had talked more about the connection between category theory and logic.

4out of 5Mark Moon–This is the most concise introductory category theory book I've seen so far. This is the most concise introductory category theory book I've seen so far.

5out of 5Gabriel Ferreira–I liked this concise introduction to the topic of category theory. In my opinion, the author made a good job of making the subject understandable to a computer scientist. The first two chapters explain the main concepts while the third gives you a taste of the applications of category theory to computer scientists. The fourth and final chapter on further reading is a very nice idea, as it details the relevant literature in category theory according to your goals. For instance, you learn that the I liked this concise introduction to the topic of category theory. In my opinion, the author made a good job of making the subject understandable to a computer scientist. The first two chapters explain the main concepts while the third gives you a taste of the applications of category theory to computer scientists. The fourth and final chapter on further reading is a very nice idea, as it details the relevant literature in category theory according to your goals. For instance, you learn that the book "Category Theory for Computing Science" comes with numerous exercises and full solutions.

5out of 5Sebastian Castillo–When it says for computer scientist I was expecting a more logic around approach anyway first to chapters are fun you only need basic logic and set theory as background yet the author advances too quick sometimes. I stop there and have no plans to study the 3rd chapter.

4out of 5Saeede Kermani–کتگوری بخونید ولی از روی کتاب استیو آودی، اگه ریاضی بلد نیستین هم به نظرم هیچ وقت نمیفهمین اینایی که میخونین به چه درد میخوره پس نخونین... من با استاد و کتاب آودی و تجربهی دست پا شکستهی ریاضی به سختی متوجه شدم کتگوری چیه...

5out of 5Tikhon Jelvis–A surprisingly accessible introduction to category theory. It really helped me get a grasp on the different ideas I had seen earlier and filled in some of the parts I hadn't. The book was a bit too succinct at points--the only reason I got through most of it quickly was because I was already familiar with the material. The genuinely novel parts of the book took quite a bit more effort to get through. Nonetheless, it was still much more accessible than other books on the same subject! This is very A surprisingly accessible introduction to category theory. It really helped me get a grasp on the different ideas I had seen earlier and filled in some of the parts I hadn't. The book was a bit too succinct at points--the only reason I got through most of it quickly was because I was already familiar with the material. The genuinely novel parts of the book took quite a bit more effort to get through. Nonetheless, it was still much more accessible than other books on the same subject! This is very much only a cursory introduction. It's certainly enough for the discerning functional programmer, but not enough to follow many current PL theory papers. Also not enough to use some of ekmett's libraries like category-extras :).

5out of 5Tim–Good book, nicely introduces just enough category theory to understand slightly more advanced texts. Perfect for graduate CS or undergraduate Maths students but perhaps a bit too brief for undergrad CS, assumes decent knowledge of set theory and algebra, for example knowledge of monoids is assumed and not really covered. Covers functors and natural transformations nicely though. Has a truly excellent bibliography and further reading chapter, pointing out many introductory books, reference books, Good book, nicely introduces just enough category theory to understand slightly more advanced texts. Perfect for graduate CS or undergraduate Maths students but perhaps a bit too brief for undergrad CS, assumes decent knowledge of set theory and algebra, for example knowledge of monoids is assumed and not really covered. Covers functors and natural transformations nicely though. Has a truly excellent bibliography and further reading chapter, pointing out many introductory books, reference books, articles and research papers.

5out of 5Leonardo–It's a pity this book is so short. Although some concepts flew straight over my head, I got quite a bit out of it. It's really interesting to see the application of Category Theory to programming language design, in particular to the foundational theory behind things like function application, currying, implicit conversions and generic operations. If you read this and you're left wanting more, the bibliography at the end of the book is a great resource to deepen your knowledge. It's a pity this book is so short. Although some concepts flew straight over my head, I got quite a bit out of it. It's really interesting to see the application of Category Theory to programming language design, in particular to the foundational theory behind things like function application, currying, implicit conversions and generic operations. If you read this and you're left wanting more, the bibliography at the end of the book is a great resource to deepen your knowledge.

4out of 5Paul Graphov–I'am not a computer scientist actually, just a software developer. The book is a bit too succinct, making some things harder to catch. On the other hand it gives good picture in quite a few pages. Also it was quite exciting to see parallels between different concepts when viewing from categorical point. Also huge "Further reading" part gives directions for ones who want to go deeper. I'am not a computer scientist actually, just a software developer. The book is a bit too succinct, making some things harder to catch. On the other hand it gives good picture in quite a few pages. Also it was quite exciting to see parallels between different concepts when viewing from categorical point. Also huge "Further reading" part gives directions for ones who want to go deeper.

5out of 5Ushan–This book presents some basic notions from category theory and tries to apply them to computer science - for example, generic data types are like functors: List carries T into lists of T and functions on T into functions on lists of T via mapcar. I don't find it terribly useful. It may or may not be nonsense, but it is exceedingly abstract. This book presents some basic notions from category theory and tries to apply them to computer science - for example, generic data types are like functors: List carries T into lists of T and functions on T into functions on lists of T via mapcar. I don't find it terribly useful. It may or may not be nonsense, but it is exceedingly abstract.

4out of 5Nick–Certainly there's more I could have gotten out of this book. I could have dug deeper, worked through exercises and examples carefully, etc. And I only really skimmed the final chapter on applications to CS, which seems like what I should have taken as the highlight. I did, though, enjoy some of the examples in the second chapter, such as seeing how floor and ceiling were adjoints. Certainly there's more I could have gotten out of this book. I could have dug deeper, worked through exercises and examples carefully, etc. And I only really skimmed the final chapter on applications to CS, which seems like what I should have taken as the highlight. I did, though, enjoy some of the examples in the second chapter, such as seeing how floor and ceiling were adjoints.

5out of 5Jakub–While this book is an interesting read, it is definitely NOT BASIC. I've had a hard time understanding many of the concepts in the way they're explained, even though this isn't the first thing I've read about Category Theory. There are many prerequisites to be able to understand the content, set theory being one, but not the only one. While this book is an interesting read, it is definitely NOT BASIC. I've had a hard time understanding many of the concepts in the way they're explained, even though this isn't the first thing I've read about Category Theory. There are many prerequisites to be able to understand the content, set theory being one, but not the only one.

4out of 5Nick Black–Everything I've read by Benjamin Pierce has been awesome, and I'm going to need to get into category theory more heavily pretty soon now (definitely by next Fall semester)...anyone have some recommendations (Brian McNamara, this means you)? Everything I've read by Benjamin Pierce has been awesome, and I'm going to need to get into category theory more heavily pretty soon now (definitely by next Fall semester)...anyone have some recommendations (Brian McNamara, this means you)?

4out of 5George Leontiev–Great introduction to the main concepts, good list of the followup literature.

5out of 5Debasish Ghosh–Solid authoritative text. But definitely needs a prerequisite of linear algebra.

4out of 5Daniel–Far too little to effectively teach a subject as abstract as category theory. But the bibliography alone might be worth $20...

5out of 5Michael–A few more reads should bring gradual understanding.

5out of 5Peng Wang–5out of 5Oliver Steele–5out of 5Irene–4out of 5Rob Norris–4out of 5Andy Legkiy–4out of 5Alejandro–4out of 5Erik–4out of 5Vik–4out of 5Jason Silva–4out of 5Ankit Goel–5out of 5Jiaming Jiang–5out of 5Róisín Grannell–