Programming with Categories - Lecture 7

preview_player
Показать описание

Lecturers: Brendan Fong, Bartosz Milewski, David Spivak

Summary: In this course we explain how category theory—a branch of mathematics known for its ability to organize the key abstractions that structure much of the mathematical universe—has become useful for writing elegant and maintainable code. In particular, we'll use examples from the Haskell programming language to motivate category-theoretic constructs, and then explain these constructs from a more abstract and inclusive viewpoint. Hands-on programming exercises will be used to demonstrate categorical ideas like "the universal property of products" in working Haskell code.

We will assume no background knowledge on behalf of the student, starting from scratch on both the programming and mathematics.

(Video: Paolo Perrone.)
Рекомендации по теме
Комментарии
Автор

I keep watching this series, hoping to see them write some software in a way that would be substantively less elegant without knowing the jargon of category theory. Can someone point me to where that happens (or let me know if it doesn't)?

nelsonrushton
Автор

> Either try ... or ...
thaht's a very categorial way to speak

tkjyxrb
Автор

Something like {1} Category of all Sets seems kinda, sorta like the axiom of choice.

paulkarch
Автор

Took me a while to understand why no one was childishly snickering at all the mentions of 'playing with this knob'

JesstyEissej
Автор

Why isn't Either generalized to something like Sum or Union? It should take any number of types and generate a Sum or a Union of those types. Implementations would still use "case".

christopherhume
Автор

The final five minutes regarding Currying and Uncurrying made sense to me. It might have helped if this segment came first. I didn't find redundant terms like "Knob", "Setting" or "Machine" helpful. Category Theorists make up new terms to explain terms that are already insufficiently clear. It seems the field would benefit from much greater mathematical rigor.

christopherhume
Автор

How is the term "one stop shop" supposed to be helpful? Would it make sense to speak of a "two stop shop"? What are we shopping for? It seems like we are trying to explain something about the nature of a Universal Property. Why make up additional terminology that doesn't clarify anything?

christopherhume
Автор

Lecture 7 and we are talking about Either in Haskell! Wow! Frigging boring!

michaelkohlhaas
Автор

Why are you writing all that crap on the blackboard? Just use a computer, a Haskell compiler and demonstrate!

michaelkohlhaas