Great talk. It's not easy to explain such abstractness. Clearly lots of effort, struggle and thought went into this distillation. Really helped improve my intuition for functors, applicatives, monoids and monads -- cheers!
Almost everything a programmer needs to know about Category Theory, and nothing she doesn't. 😸 A great introduction in ms. Sfregola's trademark "extremely non-intimidating" style. Chances are, in a few years I won't remember Bartosz's or Lawvere & Schanuel's definitions of a monad, but I don't think I'll ever forget that "a monad is simply something that smashes boxes together" - like I'm never forgetting "the pizza symbol" |@| from ruclips.net/video/P8nGAo3Jp-Q/видео.html 😀 A great talk, thanks!
you'll find that the deeper you go into category theory, those definitions are the only ones that count - in my discussions with various people about various topics, nobody tried to make such parallels - they only work for beginners as a way of making them appealing - going the route of "smashing boxes together" goes against what this style is trying to enforce - and that is mathematical rigorousness. If you don't plan to go deeper down the rabbit hole, remembering as a way of "smashing boxes together" is fine though, but inefficient in building anything significant.
dumb question: the initial arrow diagram shows identity as being A ---id---> A. I would assume the function id is of arity 1. Why is it that the scala function identity takes no arguments?
At around 41.12, about applicatives. Why does the pure function accept the function f? If the function f is evaluated, it returns a B, but the ab function signature accepts a box with a function a->b..... much appreciated for an answer. Thnx.
its the reference towards that function - so pure evaluates it as Applicative[A => B] Remember, in order to be able to call f, you need to pass in an A to it f(a) . It is a special case when some f doesnt have any arguments or are ignored when simply typing f calls the function => f: => B for example.
To see associativity there has to be 3 mappings at least. Here there is only 2 ("sizeOf" and "biggerThan2"). Maybe add from Person to Person's fullName with mapping "fullName" that gives String.
Great talk! Thank you very much.
Awesome talk ! Straight to the point, accessible and really pedagogic ! Thank you Daniela ! :)
Great talk. It's not easy to explain such abstractness. Clearly lots of effort, struggle and thought went into this distillation. Really helped improve my intuition for functors, applicatives, monoids and monads -- cheers!
Pretty badass to travel on top of a bus :D
amazing talk. Thank you so much
Almost everything a programmer needs to know about Category Theory, and nothing she doesn't. 😸 A great introduction in ms. Sfregola's trademark "extremely non-intimidating" style. Chances are, in a few years I won't remember Bartosz's or Lawvere & Schanuel's definitions of a monad, but I don't think I'll ever forget that "a monad is simply something that smashes boxes together" - like I'm never forgetting "the pizza symbol" |@| from ruclips.net/video/P8nGAo3Jp-Q/видео.html 😀 A great talk, thanks!
you'll find that the deeper you go into category theory, those definitions are the only ones that count - in my discussions with various people about various topics, nobody tried to make such parallels - they only work for beginners as a way of making them appealing - going the route of "smashing boxes together" goes against what this style is trying to enforce - and that is mathematical rigorousness. If you don't plan to go deeper down the rabbit hole, remembering as a way of "smashing boxes together" is fine though, but inefficient in building anything significant.
Slide :
speakerdeck.com/danielasfregola/lambda-world-2017-a-pragmatic-introduction-to-category-theory
excellent 👍
I can't believe it can be this good
dumb question: the initial arrow diagram shows identity as being A ---id---> A. I would assume the function id is of arity 1. Why is it that the scala function identity takes no arguments?
At around 41.12, about applicatives. Why does the pure function accept the function f? If the function f is evaluated, it returns a B, but the ab function signature accepts a box with a function a->b..... much appreciated for an answer. Thnx.
its the reference towards that function - so pure evaluates it as Applicative[A => B]
Remember, in order to be able to call f, you need to pass in an A to it f(a) . It is a special case when some f doesnt have any arguments or are ignored when simply typing f calls the function => f: => B for example.
Woow , great talk. Need to watch it few more times to get what it talks about but got the feeling it is worth it.
I don't think String -> size -> >2 is assiociative.
To see associativity there has to be 3 mappings at least. Here there is only 2 ("sizeOf" and "biggerThan2"). Maybe add from Person to Person's fullName with mapping "fullName" that gives String.
I mean something like (a->String) -> size -> >2 of course.
If a->String is f, String->size is g and Int-> >2 is h then associativity is (h*g)*f = h*(g*f)
Yeah, but in this case You cannot apply '>2' to 'size' before execute 'a->String'. I mean computation does not go clearly with mathematical model.
Can you watch this video" ruclips.net/video/p54Hd7AmVFU/видео.html . It may give clearer picture about compositions and associativity.
It's Functor Rules! rather.
THESCALAWORLDIT'SBESTCHANNELABOUTSCALALANGUAGE