Vtome.ru - электронная библиотека

Category Theory for Programmers (2019)

  • Добавил: Igor1977
  • Дата: 21-08-2019, 05:51
  • Комментариев: 0

Название: Category Theory for Programmers
Автор: Milewski B.
Издательство: Ver. 1.3. — GitHub
Год: 2019
Формат: PDF
Страниц: 498
Для сайта: LitMy
Размер: 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.












НЕ РАБОТАЕТ TURBOBIT.NET? ЕСТЬ РЕШЕНИЕ, ЖМИ СЮДА!


ПРАВООБЛАДАТЕЛЯМ


СООБЩИТЬ ОБ ОШИБКЕ ИЛИ НЕ РАБОЧЕЙ ССЫЛКЕ



Внимание
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.