Название: Category Theory for Programmers Автор: Milewski B. Издательство: Ver. 1.3. — GitHub Год: 2019 Формат: PDF Страниц: 498 Для сайта:Mirknig.su Размер: 14 mb Язык: английский
I will attempt, in the space of a few paragraphs, to convince you that this book is written for you, and whatever objections you might have to learning one of the most abstract branches of mathematics in your “copious spare time” are totally unfounded. My optimism is based on several observations. First, category theory is a treasure trove of extremely useful programming ideas. Haskell programmers have been tapping this resource for a long time, and the ideas are slowly percolating into other languages, but this process is too slow. We need to speed it up. Second, there are many different kinds of math, and they appeal to different audiences. You might be allergic to calculus or algebra, but it doesn’t mean you won’t enjoy category theory. I would go as far as to argue that category theory is the kind of math that is particularly well suited for the minds of programmers. That’s because category theory — rather than dealing with particulars — deals with structure. It deals with the kind of structure that makes programs composable. Composition is at the very root of category theory — it’s part of the definition of the category itself. And I will argue strongly that composition is the essence of programming. We’ve been composing things forever, long before some great engineer came up with the idea of a subroutine. Some time ago the principles of structural programming revolutionized programming because they made blocks of code composable. Then came object oriented programming, which is all about composing objects. Functional programming is not only about composing functions and algebraic data structures — it makes concurrency composable — something that’s virtually impossible with other programming paradigms. Since this is category theory for programmers I will illustrate all major concepts using computer code. You are probably aware that functional languages are closer to math than the more popular imperative languages. They also offer more abstracting power. So a natural temptation would be to say: You must learn Haskell before the bounty of category theory becomes available to you. But that would imply that category theory has no application outside of functional programming and that’s simply not true. So I will provide a lot of C++ examples.
Preface Part One Category: The Essence of Composition. Types and Functions. Categories Great and Small. Kleisli Categories. Products and Coproducts. Simple Algebraic Data Types. Functors. Functoriality. Function Types. Natural Transformations. Part Two Declarative Programming. Limits and Colimits. Free Monoids. Representable Functors. The Yoneda Lemma. Yoneda Embedding. Part Three It’s All About Morphisms. Adjunctions. Free/Forgetful Adjunctions. Monads: Programmer’s Definition. Monads and Effects. Monads Categorically. Comonads. F-Algebras. Algebras for Monads. Ends and Coends. Kan Extensions. Enriched Categories. Topoi. Lawvere Theories. Monads, Monoids, and Categories. Appendices. Index. Acknowledgments. Colophon. Copyleft notice.
Pure Mathematics for Beginners Название: Pure Mathematics for Beginners Автор: Steve Warner Издательство: Get 800 Год: 2018 Формат: PDF Размер: 10 Мб Язык: английский / English ...
Category Theory for Programmers Название: Category Theory for Programmers Автор: Bartosz Milewski Издательство: Autoedici?n Год: 2017 Формат: pdf Страниц: 510 Размер: 12.8 mb....
Elementary Number Theory with Programming Название: Elementary Number Theory with Programming Автор: Marty Lewinter, Jeanine Meyer Издательство: Wiley Год: 2015 Формат: PDF Страниц: 232 Для...
Transport Category Aircraft Systems Автор: Thomas W. Wild Название: Transport Category Aircraft Systems Издательство: IAP, Inc. Год: 1990 Формат: PDF Страниц: 360 Язык: English Размер:...