Category Theory for Programmers (New Edition, Hardcover)


Book Description

Category Theory is one of the most abstract branches of mathematics. It is usually taught to graduate students after they have mastered several other branches of mathematics, like algebra, topology, and group theory. It might, therefore, come as a shock that the basic concepts of category theory can be explained in relatively simple terms to anybody with some experience in programming.That's because, just like programming, category theory is about structure. Mathematicians discover structure in mathematical theories, programmers discover structure in computer programs. Well-structured programs are easier to understand and maintain and are less likely to contain bugs. Category theory provides the language to talk about structure and learning it will make you a better programmer.




Basic Category Theory for Computer Scientists


Book Description

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. 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. Contents Tutorial • Applications • Further Reading




An Invitation to Applied Category Theory


Book Description

Category theory is unmatched in its ability to organize and layer abstractions and to find commonalities between structures of all sorts. No longer the exclusive preserve of pure mathematicians, it is now proving itself to be a powerful tool in science, informatics, and industry. By facilitating communication between communities and building rigorous bridges between disparate worlds, applied category theory has the potential to be a major organizing force. This book offers a self-contained tour of applied category theory. Each chapter follows a single thread motivated by a real-world application and discussed with category-theoretic tools. We see data migration as an adjoint functor, electrical circuits in terms of monoidal categories and operads, and collaborative design via enriched profunctors. All the relevant category theory, from simple to sophisticated, is introduced in an accessible way with many examples and exercises, making this an ideal guide even for those without experience of university-level mathematics.




Basic Category Theory


Book Description

A short introduction ideal for students learning category theory for the first time.




Haskell Programming from First Principles


Book Description

Haskell Programming makes Haskell as clear, painless, and practical as it can be, whether you're a beginner or an experienced hacker. Learning Haskell from the ground up is easier and works better. With our exercise-driven approach, you'll build on previous chapters such that by the time you reach the notorious Monad, it'll seem trivial.




Programming with Types


Book Description

Summary Programming with Types teaches you to design safe, resilient, correct software that’s easy to maintain and understand by taking advantage of the power of strong type systems. Designed to provide practical, instantly useful techniques for working developers, this clearly written tutorial introduces you to using type systems to support everyday programming tasks. About the technology Common bugs often result from mismatched data types. By precisely naming and controlling which data are allowable in a calculation, a strong type system can eliminate whole classes of errors and ensure data integrity throughout an application. As a developer, skillfully using types in your everyday practice leads to better code and saves time tracking down tricky data-related errors. About the book Programming with Types teaches type-based techniques for writing software that’s safe, correct, easy to maintain, and practically self-documenting. Designed for working developers, this clearly written tutorial sticks with the practical benefits of type systems for everyday programming tasks. Following real-world examples coded in TypeScript, you’ll build your skills from primitive types up to more-advanced concepts like functors and monads. What's inside Building data structures with primitive types, arrays, and references How types affect functions, inheritance, and composition Object-oriented programming with types Applying generics and higher-kinded types About the reader You’ll need experience with a mainstream programming language like TypeScript, Java, JavaScript, C#, or C++. About the author Vlad Riscutia is a principal software engineer at Microsoft. He has headed up several major software projects and mentors up-and-coming software engineers.




Category Theory


Book Description

A comprehensive reference to category theory for students and researchers in mathematics, computer science, logic, cognitive science, linguistics, and philosophy. Useful for self-study and as a course text, the book includes all basic definitions and theorems (with full proofs), as well as numerous examples and exercises.







Category Theory in Context


Book Description

Introduction to concepts of category theory — categories, functors, natural transformations, the Yoneda lemma, limits and colimits, adjunctions, monads — revisits a broad range of mathematical examples from the categorical perspective. 2016 edition.




Categories, Types, and Structures


Book Description

Category theory is a mathematical subject whose importance in several areas of computer science, most notably the semantics of programming languages and the design of programmes using abstract data types, is widely acknowledged. This book introduces category theory at a level appropriate for computer scientists and provides practical examples in the context of programming language design.