Тёмный
Lambda World
Lambda World
Lambda World
Подписаться
Lambda World is a functional programming conference and networking event in Cádiz, Spain.
Lambda World 2024 is BACK!
0:49
3 месяца назад
Lambda World 2019 - Unconference
1:08:21
4 года назад
A look inside Lambda World Cadiz 2019
2:31
4 года назад
Комментарии
@blankboy-ww7jt
@blankboy-ww7jt 2 месяца назад
🎉🎉🎉🎉
@MrTruthAndFacts
@MrTruthAndFacts 3 месяца назад
Finally. One of the best functional programming conferences
@LambdaWorld
@LambdaWorld 3 месяца назад
Thanks for the compliment!
@alexeychikilevsky4655
@alexeychikilevsky4655 3 месяца назад
Здорово упростили. Выкинув из выступление понятие монойда. Но все-таки стоило бы оставить.Иначе сразу непонятно зачем там IdA например. Для чего.
@maxg3626
@maxg3626 3 месяца назад
that's why I'm in love in Haskell
@letslearnwithbob
@letslearnwithbob 3 месяца назад
REBOL, Red and Meta!!
@OriginalFootprintz
@OriginalFootprintz 4 месяца назад
Complexity would be fiddling with the mic adjusting its settings, instead of switching to a different one
@skibaa1
@skibaa1 9 месяцев назад
27:23 I understand this question as is there another way except flatMap to fulfil the monad conditions with lists? Any bind with return should do nothing and any f looking like A -> list(B) should give the same result if instead of calling on A it would be called on return(A) followed by bind(f). It is not easy to come with a working example for lists, and for Maybe there simply no other implementation obiding these rules
@laughingvampire7555
@laughingvampire7555 Год назад
I wouldn't say that functional programming concentrates in computing results rather than performing actions, I would say decouples computing results from performing actions, giving a clean semantics to both of them.
@laughingvampire7555
@laughingvampire7555 Год назад
what we need is an audio filter to automatically remove breathing from the recording.
@laughingvampire7555
@laughingvampire7555 Год назад
The problem of this approach is that arrives too late, arrives when people already did that in those scripting languages, people already had their DSL obsession in Ruby and other scripting languages. Another thing is that the Haskell community have done an amazing job, proving to the entire world with code and not just with talks that types matter and types are an excellent tool to conquer complexity. And this is why TypeScript and Rust have won lots of followers. For instance in the world of the web, Elm is the superior option and is a DSL that abstracts a FRP framework, and is amazing and a lot more helpful and the reason is that it had careful development for years. All languages to be useful rely on tooling to support them, syntax highlighting, style checking, etc. We also come form the massive industry headache with microservices and we have learned the importance of having monoliths and scaling vertically first before considering the possibility of distributed systems. Meaning that we have to use languages that perform faster so we need types for performance as much as types for verification. So this talk sounds obsolete, unless he is willing to do what he doesn't want to do and is to get involved in sophisticated typing with dependent types that help to produce fast performing software because most of the scripting languages perform at 8% of compiled languages like Rust and at 20% of compiled languages like Go.
@laughingvampire7555
@laughingvampire7555 Год назад
well, verification and GADTs have proven to conquer complexity and untyped languages like lisp have proven to increment complexity. and I agree that behind every library there is a language that wants to come up, but the way we can make all these language interact successfully for all the goals of software in general and products in particular is with a robust, flexible, powerful and ergonomic Verification system.
@ColbyARussell
@ColbyARussell Год назад
At ~@4:00 Aditya is talking about custom visualizers for one's libraries. Around the release of Firefox 4, when some folks who had worked on Firebug were tapped to work on Firefox's new, integrated inspector and other Web Developer tools (ultimately set to displace Firebug itself-which it did-and obviate the need for the older, XUL-based DOM Inspector-which it did not), I had been maintaining the original DOM Inspector, still useful for browser extension developers and people hacking on Firefox's own UI, and I realized based on the way things were going with the work that the new devtools team who'd gotten spliced in were doing, all they were really going to achieve was to pull off Firebug-in-the-browser at best. So I set out at the time to write a replacement for the legacy DOM Inspector that both retained and highlighted some aspects of its architecture that Firebug and its clones lacked. Hewitt had done a really good job at that part, so the inspector's "framework" was basically akin to UNIX pipes, but in graphical form-with pluggable viewers that could take the output of one as the input to another-there just wasn't a lot of obvious visual affordance for it in the UI that made it clear that this was happening under the hood or that you could string them together in sequence to the nth degree (rather than a fixed, two-pane inspector layout, with the document tree on the left and e.g. the CSS viewer on the right). While I was still maintaining the legacy DOM Inspector, I started on a from-scratch rewrite that would also incorporate the sort of Miller columns-inspired design that ultimately ended up in Glamorous Toolkit. That was in 2013, 2014, though-and then the-powers-that-be at Mozilla Corp announced finally that XUL was *definitely* going to go by the wayside as the Firefox product team began chasing Chrome's tail and would implement instead its newer but unfortunately far more limited WebExtension standard. This would have completely killed the ability to install a replacement inspector, so I stopped working on it (and called it quits on my involvement with Mozilla once and for all, which I had been contributing to since 2006). Huge bummer. I'm not saying I need to have been to have done it, but we'd be way better off today (not to mention in the meantime) with an inspector that was designed to embody these principles and fostered the culture that Aditya talks about at the very top of this presentation. And there's no reason it should have needed to be constrained to the browser, either-a general purpose framework for inspecting/debugging any and every application and component on one's desktop at any given moment would have been a huge boon to system introspectability, developer productivity, end-user control, and free/open source software and computing generally. Unfortunately, we just ended up with Firebug-reimplemented-inside-the-browser instead...
@jeanrodrigues6249
@jeanrodrigues6249 Год назад
sudo
@jeanrodrigues6249
@jeanrodrigues6249 Год назад
declare
@nomoredarts8918
@nomoredarts8918 Год назад
It's funny how we fix javascript/typescript issues with tools like ReasonML, ReScript and Elm, but still fallback to use TS because of business decisions that in the end cost millions of dollars
@jameskim4274
@jameskim4274 Год назад
Rename it to "Painless software development with cabal")
@FilosSofo
@FilosSofo Год назад
Heh. You spelled "painful" wrong.
@AhmedKhaled-sj1zx
@AhmedKhaled-sj1zx Год назад
The Accent tho
@logauit
@logauit Год назад
interesting talk! Thank you!
@roymath
@roymath Год назад
What a great presentation. I particularly liked the implementation of compose and curry, and this made lenses more comprehensible
@kinjalbasu1999
@kinjalbasu1999 Год назад
Video starts at 3:50
@michakobukowski1309
@michakobukowski1309 Год назад
Maybe it is painless later. But to setup Haskell on the computer is excruciating. I could never figure out how to do it correctly. Always a bunch of installation errors. Ghcup, stack, doesn't matter. You will loose hours to make it work for a day. It'll stop working another day and you won't be able to figure out why.
@kiaragrouwstra4250
@kiaragrouwstra4250 8 месяцев назад
nix adresses this (and for installing other software too)
@NoahNobody
@NoahNobody Год назад
I'm just discovering smalltalk and found this to be a great introduction to the environment.
@eadwacer524
@eadwacer524 Год назад
Take a drink every time computation or computational is said.
@Bratjuuc
@Bratjuuc 2 года назад
That's some overcomplicated way to tell the associativity of monad's "join" natural transformation property join . fmap join == join . join "join" after "joining" within is the same as "joining" after "joining" from outside
@ycombine1053
@ycombine1053 2 года назад
Servent seems really cool. But polysemy did not click at all with me.
@sbditto85
@sbditto85 2 года назад
I want this as a “childrens book” so someone could read it and show me the pictures every night. Very cool style of talk!
@adorinadorin
@adorinadorin 2 года назад
Intriguing...
@librarygangster9108
@librarygangster9108 2 года назад
Very clear. ty very much!
@francois9184
@francois9184 2 года назад
hello Ben, how can i create a random between two values to control a parameter in Faust?
@sasek118
@sasek118 2 года назад
Reksio <3
@michaelkohlhaas4427
@michaelkohlhaas4427 2 года назад
*Thank you!*
@micknamens8659
@micknamens8659 2 года назад
Another cool feature in the finder is search by example. You provide the input parameter values and the expected result value. The finder shows you all methods which pass this test in a second.
@micknamens8659
@micknamens8659 2 года назад
Why not using the Kleisli algebras for the monads? What's the difference?
@micknamens8659
@micknamens8659 2 года назад
38:15 What is the definitions of "Ty" and "Inn"?
@micknamens8659
@micknamens8659 2 года назад
37:40 Why is the productId a Unit? It would be more realistic to have an enumeration type in the range 1..4 or ProductId = A | B | C | D.
@petergoodall6258
@petergoodall6258 2 года назад
Identity required for isomorphism - my question answered ✅
@a0um
@a0um 2 года назад
Rule of thumb for better presentations: if your slide is mostly blank you should increase the font size.
@user-zq8bt6hv9k
@user-zq8bt6hv9k 2 года назад
5:51
@code_report
@code_report 2 года назад
Amazing talk.
@ribosomerocker
@ribosomerocker Год назад
so true
@DanyilDvorianov
@DanyilDvorianov 2 года назад
So Polysemy is the same as free monads (freer library)? Or what is the difference?
@murakas55
@murakas55 2 года назад
The readme says "It's like freer-simple but more powerful", unfortunately don't know what that "more powerful" means there :)
@bradspicer5102
@bradspicer5102 2 года назад
Very good and funny videos bring a great sense of entertainment!
@maxyazhbin826
@maxyazhbin826 2 года назад
One of the best talks
@badwolf8112
@badwolf8112 3 года назад
programming language people focus on verification because it's the easier problem? not sure if it was a joke but i heard proving incrementing a variable is hard
@haskellacademy7497
@haskellacademy7497 3 года назад
25:31
@bibliusz777
@bibliusz777 3 года назад
🙏
@lopezb
@lopezb 3 года назад
The category of natural numbers with matrices only seems strange because this underlying structure is hidden: associate each number n with R^n. Then it's also clear why 0 is not allowed. There's no vector space R^0.
@jonathanlong4042
@jonathanlong4042 2 года назад
R^0 is a perfectly good vector space. It's zero-dimensional, has only one element (zero) and has a basis given by the empty set. (In fact it's a rather important space, being both the initial and terminal object in any category of vector spaces.) I think the only reason zero is excluded in the example brought up in this talk is that we usually don't have empty matrices in mind when we think of matrices. But there's nothing wrong with them, they're certainly useful in programming, and in fact Emily includes zero in her later ACT 2020 talk (ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-SsgEvrDFJsM.html).
@lopezb
@lopezb 2 года назад
@@jonathanlong4042 Of course you are right about R^0, 0-dimensional with basis the empty set. Exactly! Maybe I was thinking something else? I will check out your link...
@lopezb
@lopezb 3 года назад
"associative" is easy to motivate: composition is defined for 2 things, and associativity tells you how to compose 3 things. (More precisely, it tells you that the two natural ways are equal).
@automatescellulaires8543
@automatescellulaires8543 3 года назад
It's been 50 years from the begining of smalltalk, nearly 4 years from when this talk occured. Has anything changed ?
@lyingcat9022
@lyingcat9022 2 года назад
And 1 year from this comment… I’ll go on a limb and say No, no it hasn’t;)
@automatescellulaires8543
@automatescellulaires8543 2 года назад
@@lyingcat9022 oh boy, already 1 year.
@David-iq1kd
@David-iq1kd Год назад
@@automatescellulaires8543 another year! Darklang had an interesting IDE, but killed it recently in favor of VS Code.
@MrMirville
@MrMirville 3 года назад
OO might no longer be the absolute king but putting nails in his coffin and sharpening the guillotine might lead to even harsher a tyranny : evolving towards an OO constitutional monarchy might spare a lot of trouble to the future denizens of software engineering.