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. "Categories, Types and structures" provides a self-contained introduction to general category theory and explains the mathematical structures that have been the foundation of language design for the past two decades. The authors observe that the language of categories could provide a powerful means of standardizing of methods and language, and offer examples ranging from the early dialects of LISP, to Edinburgh ML, to work in polymorphisms and modularity. The book familiarizes readers with categorical concepts through examples based on elementary mathematical notions such as monoids, groups and toplogical spaces, as well as elementary notions from programming-language semantics such as partial orders and categories of domains in denotational semantics.
It then pursues the more complex mathematical semantics of data types and programs as objects and morphisms of categories.