Very nice! Having functor, applicative, and monad side-by-side (being able to observe the similarities and the differences) made the different parts just click into their respective places. Thanks!
I'm perpetually a Haskell beginner, but I did get over monads a while ago. Still, it was nice to see the relationship between map, apply, and bind spelled out so clearly. A slightly longer aside on how we got to "flatMap" (how bind works out to map+join) wouldn't have gone amiss, but I understand you only have so much time in one presentation. Great presentation, taught me a little F# in the bargain :)
Is the 4:49 function add right highlighted? I though it stands for two parameters : Int and Int (Int -> Int) and returns Int (last -> Int) . I'm newbie to haskell so I might be wrong
yes, the highlight is right add :: Int -> Int -> Int add x y = x + y sure, the most intuitive way to interpret this, is that add takes two numbers as arguments and returns their sum, but functions can be transformed to take only one argument and return a function with one less argument than the original, this is called currying, and I think in Haskell all functions are actually curryed. add :: Int -> (Int -> Int) add x = \y -> x + y in this case add only takes the first number to be added (this is called partial function application), and returns an (unnamed/lambda) function which will take an Int (the second number to be added) and return the sum. let us call the curryed function with the number 1 (partial application), and name the returned function increment: increment = add 1 now when we call increment with whatever integer, it will add one to it (increment = lambda y -> 1 + y)
Way too dry and abstract talk, feels like an algebra class on derivatives for the first time. I, myself know functional programming more or less, but it was hard to follow. This is definitely not for mere mortals.
If I had a dollar for every time someone giving one of these talks apologized for using Haskell, a language that obviously no one in the audience will be familiar with...
Very nice! Having functor, applicative, and monad side-by-side (being able to observe the similarities and the differences) made the different parts just click into their respective places. Thanks!
Thank you! You have beautifully explained Functor, Applicative and Monad the way developers can understand. BEAUTIFUL!
Deep dive functional with very practical samples - a seldom seen combination - thank's a lot for this presentation - Daniel Chambers!!
I'm perpetually a Haskell beginner, but I did get over monads a while ago. Still, it was nice to see the relationship between map, apply, and bind spelled out so clearly. A slightly longer aside on how we got to "flatMap" (how bind works out to map+join) wouldn't have gone amiss, but I understand you only have so much time in one presentation. Great presentation, taught me a little F# in the bargain :)
Excellent explanation of functional patterns !
Finally I understand >>= !!! :D
Thank you so much, mr. Chambers
that witcher wallpaper at 32:42 :>
Is the 4:49 function add right highlighted?
I though it stands for two parameters : Int and Int (Int -> Int) and returns Int (last -> Int) . I'm newbie to haskell so I might be wrong
yes, the highlight is right
add :: Int -> Int -> Int
add x y = x + y
sure, the most intuitive way to interpret this, is that add takes two numbers as arguments and returns their sum, but functions can be transformed to take only one argument and return a function with one less argument than the original, this is called currying, and I think in Haskell all functions are actually curryed.
add :: Int -> (Int -> Int)
add x = \y -> x + y
in this case add only takes the first number to be added (this is called partial function application), and returns an (unnamed/lambda) function which will take an Int (the second number to be added) and return the sum.
let us call the curryed function with the number 1 (partial application), and name the returned function increment:
increment = add 1
now when we call increment with whatever integer, it will add one to it (increment = lambda y -> 1 + y)
so... this is all just Railway Oriented Programming?
awesome !!!
"I don't answer Questions' :)
JavaScript is only an OO, Imperitive language if you're doing it wrong. ;)
Way too dry and abstract talk, feels like an algebra class on derivatives for the first time. I, myself know functional programming more or less, but it was hard to follow. This is definitely not for mere mortals.
If I had a dollar for every time someone giving one of these talks apologized for using Haskell, a language that obviously no one in the audience will be familiar with...