Тёмный

Haskell for Imperative Programmers #36 - Category Theory (Functors, Applicatives, Monads) 

Philipp Hagenlocher
Подписаться 10 тыс.
Просмотров 24 тыс.
50% 1

In this video we are going to get theoretical!
Programming with categories:
• Programming with Categ...
Category theory for programmers by Bartosz Milewski:
github.com/hmemcpy/milewski-c...
Seven Sketches in Compositionality by Brendan Fong & David I. Spivak:
arxiv.org/pdf/1803.05316.pdf
Applicative programming with effect by Conor McBride & Ross Paterson:
www.staff.city.ac.uk/~ross/pap...
Timestamps:
00:00 - Intro
00:24 - Categories
05:13 - Monoids as Categories
06:18 - Functors
09:45 - Monoidal Categories
13:00 - Monoidal Functors
16:39 - Applicatives
19:45 - Monoids
21:04 - Monads
26:23 - Recap
27:42 - Laws
28:01 - Conclusion
28:39 - Recommendations for further study
Support me on Ko-fi:
ko-fi.com/phagenlocher

Наука

Опубликовано:

 

10 июл 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 27   
@SorokinAnton
@SorokinAnton 3 года назад
9:20 maybe map f . map g , not map f (map g)
@xenopheliac7202
@xenopheliac7202 3 года назад
map (f . g) ?
@philipphagenlocher
@philipphagenlocher 3 года назад
Indeed, "map f (map g)" is incorrect. What I wanted to specify was "\x -> map f (map g x)". Thanks for spotting that!
@MsKarlason
@MsKarlason 3 года назад
@@philipphagenlocher or map f . map g
@tatechin9268
@tatechin9268 3 года назад
I've been following your tutorial for like a week now. Probably one of the best tutorials for haskell. Thank you so much!
@battatia
@battatia 3 года назад
Really liking this series and getting a lot out of it. This is the first where its started to go over my head. Will check out recommended resources and give it another go. Thank you for all of your Haskell content!
@AlexandreCassagne
@AlexandreCassagne 2 года назад
Your tutorials are fantastic. Thank you for releasing them, they are a rare mix of theory and application that distils the essence of things. More RU-vid channels should embrace this method instead of duplicating concepts unnecessarily (as in the ‘tutorial’ culture).
@AlessandroZir
@AlessandroZir Год назад
marvelous, I loved those schemes in the beginning!! ❤❤🦊
@exbibyte
@exbibyte Месяц назад
🔥thank you for the videos
@mamo1671
@mamo1671 3 года назад
Your videos are truly great. This is the first one I didn't quite understand. I'll have to try to rewatch it and read the linked resources. As a request, are you planning to talk about the State monad or the Arrow class in the future? Thank you so much for your great videos, keep it up!
@philipphagenlocher
@philipphagenlocher 3 года назад
Thank you so much! Arrows might be a fitting topic for the next video acually! The State Monad will probably find it's way into a video (not as a single video, but as a side note somewhere!). Stay tuned! ;)
@mamo1671
@mamo1671 3 года назад
@@philipphagenlocher Great! Thank you!
@Fanaro
@Fanaro 3 года назад
How do you create your slides? With LaTeX? If you make it with code, could you please share them as well?
@philipphagenlocher
@philipphagenlocher 3 года назад
For the slides I use LibreOffice Impress. For syntax highlighting I use this extension: extensions.libreoffice.org/en/extensions/show/code-highlighter
@ambatimeghana6980
@ambatimeghana6980 2 года назад
Your tutorial awesome. Can you suggest reference books related to this topic.
@vicissitude1210
@vicissitude1210 3 года назад
Can I download these slides from somewhere?
@hotdog9259
@hotdog9259 3 месяца назад
At 10:00, you say that the tensor product is a functor, but maps objects of C. My understanding is that would be a morphism, not a functor? Or am I misunderstanding
@Bratjuuc
@Bratjuuc 3 года назад
What does "muT" mean? Mu is a natural transformation, while T is a functor. Does this T in muT mean id_T ?
@VuVietran
@VuVietran 3 года назад
At 18:55, is this a bit misleading because putStrLn getLine is of type IO (IO ()) which doesn't really do anything unless you "join" the IO? To print, surely you need getLine >>= putStrLn? Many thanks for your vids btw!
@Bratjuuc
@Bratjuuc 3 года назад
Yeah, this works. You can join it yourself with join :: Monad m => m (m a) -> m a join = (>>= id)
@shutterrecoil
@shutterrecoil 2 года назад
Control.Monad.join (putStrLn ((++) getLine getLine))
@torsten_dev
@torsten_dev Год назад
21:10 So a monad is just a monoid in the category of endofunctors?
@flash-gz1hu
@flash-gz1hu 3 года назад
Drive by category theory😁
@saltrocklamp199
@saltrocklamp199 3 года назад
Sorry to double comment. Are there sensible English pronunciations for $, , , **, and ?
@Bratjuuc
@Bratjuuc 3 года назад
$ - apply - fmap - applicative application I don't use the rest at all
@segersbenny
@segersbenny 3 года назад
Bartosz has lectures on category theory RU-vid as well, very interesting
@nincako
@nincako 6 дней назад
this video is NOT about application. The codes given are just definitions and it is heavily based on describing something very abstract. Please do not waste your time.
Далее
Haskell for Imperative Programmers #37 - Arrows
13:15
🎙ПЕСНИ ВЖИВУЮ от КВАШЕНОЙ🌹
3:09:38
Okay but WTF is a MONAD?????? #SoME2
18:18
Просмотров 65 тыс.
Category Theory for Programmers: Chapter 1 - Category
20:14
The purest coding style, where bugs are near impossible
10:25
What is a Monad? - Computerphile
21:50
Просмотров 595 тыс.
Intro to Category Theory
31:02
Просмотров 30 тыс.
Здесь упор в процессор
18:02
Просмотров 223 тыс.
899$ vs 360$ which one will you choose ? #iphone #poco
0:18
Samsung Galaxy Unpacked July 2024: Official Replay
1:8:53