Тёмный
Compose Conference
Compose Conference
Compose Conference
Подписаться
C◦mp◦se :: Conference video repository
composeconference.org
Teaching Haskell
24:48
6 лет назад
Working with Monads in OCaml
22:48
6 лет назад
Комментарии
@Lircking
@Lircking 11 дней назад
nice
@Lircking
@Lircking 12 дней назад
amazing
@GuyDude-hk8uy
@GuyDude-hk8uy 2 месяца назад
Don't quote me on this, but regarding the "open vs. closed" tradeoff, I think the issue relates closely to the expression problem - therefore, we could use a solution to that in order to recover the openness. Again, don't quote me, but I think this could be achieved (in Haskell, at least) using a typeclass with an associated data type. That way you can create instances of the class "SerializableFn" where you must provide a Data type for each instance and a mapping function to/from said data type cases to the appropriate function/s relevant to that instance. That way - whilst you still need to update the code to handle the new case of course - any old code that just uses the typeclass will have the changes propagated automatically; the same way the definition of (+) itself doesn't need to be modified for each new instance of Num a. Not sure whether this would be able to work out with the kinds, or regarding (multiple) type variables, but it seems somewhat promising. I have a feeling the Haskell MemoTrie library and associated paper "Memo Functions, Polytypically!" may bear some relation.
@mrmaniac9905
@mrmaniac9905 4 месяца назад
Great speaker and great talk!
@kahnfatman
@kahnfatman 8 месяцев назад
Is Maybe a special case of Either Nothing?
@DougBeardsley
@DougBeardsley 8 месяцев назад
Maybe is equivalent to Either ()
@mathandemotion
@mathandemotion Год назад
For everyone who is suffering because of the audio: Easyeffects with noise reduction and autogain makes it sound pretty ok :)
@dengan699
@dengan699 Год назад
wow good talk!
@a0um
@a0um Год назад
Please, ask some help from an audio technician!
@dustinmichaels2054
@dustinmichaels2054 Год назад
Great video. Please keep making more of them George.
@vpryt18
@vpryt18 Год назад
Donya? or Sonya? Is that a typo too?
@djgreyjoy1495
@djgreyjoy1495 Год назад
I finally understood monads. Thanks Dr Riehl!
@lucasa8710
@lucasa8710 Год назад
good
@asitisj
@asitisj Год назад
Nat <: nat , so how influenced is this from Russell's type theory? Also you can't derive subsumption rule when row type instantiated Jury is still out on, if 0 is nat
@pushinweight
@pushinweight Год назад
KDA will be legendary.. amazing technology
@Voltra_
@Voltra_ Год назад
9:04 you can in C++ :3
@Evan490BC
@Evan490BC Год назад
Yes, using SFINAE, but it is a low-level hack, as C++ doesn't really have formal interfaces.
@sohangchopra6478
@sohangchopra6478 Год назад
Ptghci is also quite good for a terminal REPL
@TheRealSTR
@TheRealSTR 2 года назад
Here we go boys
@craia25
@craia25 2 года назад
this is a crazy way to produce music.... i am wondering how this sounds? ;-)
@jsmdnq
@jsmdnq 2 года назад
Can this analyze the program Ken Griffin uses to manipulate the fraud market?
@asandax6
@asandax6 2 года назад
"Lock-step simulation is child's play" Me: This must be the reason I can't do it because I'm not a child anymore 😥
@dinoscheidt
@dinoscheidt 2 года назад
Even in 2022 great talk. Well done
@English1108
@English1108 2 года назад
I just want to say this technique is obnoxious. Pretty much the whole point of the this technique would be to apply it to the task of iteratively walking through a tree structure and accumulating a value from it. When this gets brought up on the internet, its always (like this video) walking through a tree structure and NOT accumulating a value or, like other articles, accumulating a value from a sequence structure (like summing a list). Table stakes for this technique to be useful is walking a tree AND accumulating a value - but once you do that, the method shown here just doesn't work - why? because you have 2 different conceptual stacks to maintain (one to maintain position in the tree and one to accumulate the value) and the inlining no longer works the same way and there is just nothing out there that bridges the gap.
@1210divs
@1210divs Год назад
Correct! Talk is kind of misleading. The reason why the tree traversal function prints the traversal path instead of returning it as a list is because it CAN'T accumulate the path and return it.
@williamd4866
@williamd4866 Год назад
​@@1210divs That's not true! As TJ above mentions, you can accumulate a value like a list through a tree using this technique. The things you end up accumulating together are just represented by functions arguments for the continuation.
@1210divs
@1210divs Год назад
@@williamd4866 I will believe you if you show me a version of the code from this video that returns the output as a sequence rather than printing it.
@williamd4866
@williamd4866 Год назад
@@1210divs Something like this would accumulate a list in CPS: List listTree(Tree tree, Function kont) { if (tree != null) { return listTree(tree.left, (L) -> { return listTree(tree.right, (R) -> { return kont(L + [tree.content] + R); }); }); } else { return kont(List()); } }
@1210divs
@1210divs Год назад
@@williamd4866 at this point, you are no longer using the continuation and doing plain old recursion that will lead to stackoverflow.
@dean2951
@dean2951 2 года назад
12:41 프로세스
@michaelmroz7433
@michaelmroz7433 2 года назад
I watched this talk for the first time around when it was delivered, when I was first properly getting into FP. Even given that, I've watched it at least three times in the past three months. It's just so fun.
@spiraeth
@spiraeth 2 года назад
Bret Victor reference detected.
@chickengoatfish
@chickengoatfish 2 года назад
\m/..\m/
@juliannevillecorrea
@juliannevillecorrea 2 года назад
thank you sir ❤️
@parietal100
@parietal100 2 года назад
Wonderful presentation. Thank you.
@kaqqao
@kaqqao 2 года назад
Excellent talk. Terrible audio. But excellent talk.
@marissa3248
@marissa3248 2 года назад
22:11 live coding begins
@MohammedAli-go2uc
@MohammedAli-go2uc 2 года назад
Kadena ✅🔥
@WarrenLeggatt
@WarrenLeggatt 2 года назад
Great talk and props for the King Chrimson shirt :)
@linhe6729
@linhe6729 2 года назад
Great talk even in 2021!
@s90210h
@s90210h 2 года назад
'I have to get back to Science...' <3 the music was cool af tho the code could watch out for timing 'errors' in the human's playing too perhaps to derive micro timings?
@JosiahWarren
@JosiahWarren 2 года назад
We need more of them
@user-dn7qr7vs1h
@user-dn7qr7vs1h 3 года назад
23:52 Lmao, George Wilson is there! 😂
@k1m1
@k1m1 3 года назад
You are amazing!
@StudentOfKyoto
@StudentOfKyoto 3 года назад
Amazing talk
@andrewsorenson6750
@andrewsorenson6750 3 года назад
Great name!
@slowpnir
@slowpnir 3 года назад
What font does he use?
@GurwinderSingh-mk8db
@GurwinderSingh-mk8db 2 года назад
Iosevka
@droidcrackye5238
@droidcrackye5238 3 года назад
great work
@Bratjuuc
@Bratjuuc 3 года назад
i'm really glad I stumbled upon this talk. Thanks
@hotpawsmathsandscience3124
@hotpawsmathsandscience3124 3 года назад
i like how he says DO DO
@i6g7f
@i6g7f 3 года назад
Thank You for this wonderful talk! Very helpful! :) that explain of map and fmap at 1:20 is very very comprehnsible, cool!
@jdubbs9655
@jdubbs9655 3 года назад
I am very intrigued. I would like to learn more!
@AshkanKiani
@AshkanKiani 3 года назад
The person dying of consumption in the audience with their phlegmy coughs is really distracting, but the talk is fantastic.
@reen6904
@reen6904 2 года назад
lol, tere's a guy with tuberculosis in every meeting
@holdenmcgroin8917
@holdenmcgroin8917 3 года назад
This is what Haskell can do to a person...
@asitisj
@asitisj 3 года назад
16:00 is that why Emacs has Max recursion depth?
@karthikravikanti
@karthikravikanti 3 года назад
Nice rhyme +13:11
@abelgerli
@abelgerli 3 года назад
Sometimes I just need the overview and the reason why something is really useful so I appreciate the approach.