Lambda Calculus - Fundamentals of Lambda Calculus & Functional Programming in JavaScript

  Рет қаралды 194,868

Fullstack Academy

Fullstack Academy

Күн бұрын

Fullstack Academy was recently ranked the #1 coding bootcamp in the U.S. Learn more at www.fullstackacademy.com
The Lambda Calculus is a symbol manipulation system which suffices to calculate anything calculable. This branch of pure mathematics forms the backbone of functional programming languages, and here it is presented through the concrete and familiar lens of JavaScript.
In this Lambda Calculus video you will learn:
- Lambda Calculus Syntax
- History of the foundations of mathematical logic
- The essence of functional programming
🔗 Part II: • A Flock of Functions: ... 🔗 Slides: bit.ly/2xpcPKn 🔗 Repo: github.com/glebec/lambda-talk

Пікірлер: 364
@tashburn
@tashburn 6 жыл бұрын
This was the clearest, most understandable introduction to lambda calculus I'm come across. Nicely done. Thanks for making it.
@chumeh9886
@chumeh9886 3 жыл бұрын
Very True. it has been so troublesome to me, but now its so clear. thank
@john7556
@john7556 3 жыл бұрын
Agreed: I'm only 2m21s into the video, and he has clarified so much of the syntax that I'm very impressed (and regretful at all the time I lost to other "explanations"!)
@otischance9144
@otischance9144 2 жыл бұрын
Sorry to be so offtopic but does someone know of a trick to log back into an Instagram account?? I somehow lost my account password. I appreciate any tips you can offer me
@fabianjax4659
@fabianjax4659 2 жыл бұрын
@Otis Chance instablaster ;)
@otischance9144
@otischance9144 2 жыл бұрын
@Fabian Jax thanks for your reply. I found the site on google and Im waiting for the hacking stuff now. I see it takes a while so I will reply here later when my account password hopefully is recovered.
@alinisar87
@alinisar87 5 жыл бұрын
This is hands down the best intro to functional programming/lambda calculus out there. The fact that it only has 38k views at the time of writing is a crime of untold magnitude.
@gustavorino
@gustavorino Жыл бұрын
Top quality is not for everyone, unfortunately
@joriskbos1115
@joriskbos1115 4 жыл бұрын
Watching this video felt like unravelling the world's deepest conspiracy
@Yetipfote
@Yetipfote 3 жыл бұрын
This comment is almost on par with the video!
@ninichanglife
@ninichanglife 5 жыл бұрын
the best lambda calculus explanation ever
@itskshitij
@itskshitij 6 жыл бұрын
Just want to say, those were some of the best slides I've ever seen.
@seyikareem8052
@seyikareem8052 4 жыл бұрын
This should be a TED Talk, the preparation must have been intense. You Sir are a genius
@glebec
@glebec 4 жыл бұрын
Not a genius, just had a lot of fun reading up on what other people figured out before me! What you DON'T see here is all the time and effort it took to untangle those ideas, practice them, and examine them from different angles before it made sense to ME. Once I did that, I really wanted to make the subject easier to understand for people like me… by coming up with explanations which I think might have helped. Thanks for the kind words regardless! :-)
@hocky-ham324-zg8zc
@hocky-ham324-zg8zc 3 жыл бұрын
Gabriel Lebec please make videos like this! I guarantee you’ll get a lot of exposure
@charliegarrett5993
@charliegarrett5993 3 жыл бұрын
This lecture is just unbelievably good. This guy is a very talented teacher/lecturer
@SeverityOne
@SeverityOne 4 жыл бұрын
Less than seven minutes in and I can already see that this is great: clearly explained, well articulated, the works. But now I have to rush off to work, writing lambda expressions in Java.
@yannick6927
@yannick6927 4 жыл бұрын
Welll, good luck!
@ziggy6698
@ziggy6698 5 ай бұрын
I used to teach at a fullstack bootcamp and I'm completely blown away by the quality of this lecture. Feel like an absolute jabroni. Amazing my dude.
@mfrdbigolin
@mfrdbigolin 3 жыл бұрын
Literally the best talk about lambda calculus on KZbin, after watching this video (and the second one), I am enthusiastic to read To Mock a Mockingbird.
@olivierbegassat851
@olivierbegassat851 6 жыл бұрын
This was remarkably clear, a lot of thought must have gone into preparing this talk ! Thank you so much for this excellent talk : )
@codegeek98
@codegeek98 2 жыл бұрын
[0:00:00] Intro [0:00:48] I = a => a [0:01:48] Notation [0:06:39] Functions [0:09:15] Beta-reduction [0:11:49] M = f => f(f) [0:15:04] "n-ary" shorthand [0:17:00] K = a => b => a [0:18:44] KI = a => b => b [0:20:49] History [0:29:30] Combinators? [0:31:00] C = f => a => b => f(b)(a) [0:33:46] T = K; F = KI [0:39:53] not = p => p(F)(T) [0:42:21] not == C && not !== C [0:45:30] and = p => q => p(q)(p) [0:48:39] or = p => q => p(p)(q) [0:49:29] or == M [0:51:41] beq = p => q => p(q)(not(q)) [0:54:19] ¬(P ∧ Q) === (¬P) ∨ (¬Q) [0:55:01] Closing [0:56:48] Basis [0:58:15] WHY? [1:00:37] Y- and Z-Combinators [1:01:58] Outro
@glebec
@glebec 2 жыл бұрын
Thanks for the timestamps!
@florianvanbondoc3539
@florianvanbondoc3539 Жыл бұрын
Thanks for you work!
@ivandrofly
@ivandrofly 7 ай бұрын
Good one thanks
@SatyajitGhana7
@SatyajitGhana7 5 жыл бұрын
53:02 *that's XNOR !*
@theogiani8562
@theogiani8562 4 жыл бұрын
Yes ;-)
@omrishavit8843
@omrishavit8843 3 жыл бұрын
I thought the same! And then when he said "boolean equivalence" I felt both stupid/wrong and smart/correct
@gumfun2
@gumfun2 3 жыл бұрын
Right. I thought of it as 'if and only if'
@ivandrofly
@ivandrofly 8 ай бұрын
Best explanation on the internet
@patrikhagne9204
@patrikhagne9204 3 жыл бұрын
Beautiful talk! I love the way you tie it into javascript, the one functional language that everyone understands!
@pjnoonan1423
@pjnoonan1423 3 жыл бұрын
This just opened a whole new world to my mind. I can't thank you enough for making and posting this. You can't possibly know how deep my thanks are to the presenter, the staff, and all other associated people. Keep doing what your doing, and you'll find someone will change the world because of your work. Thank you, and bless you all.
@rboes208
@rboes208 3 жыл бұрын
This is exactly how I feel as well!
@theblackunderflow1842
@theblackunderflow1842 3 жыл бұрын
FullStack is amazing man!
@vineboomsoundeffect5395
@vineboomsoundeffect5395 8 ай бұрын
The best video on λcalc‼️‼️
@tauruscolvin
@tauruscolvin 4 жыл бұрын
I’m a long time software engineer. Have been focusing on functional javascript the last couple years. Have been trying to put my finger on why functional feels so much better than other methods. This video and others like it get at it. Functional programming connects to underlying fundamentals such as the lambda calculus and category theory. Fundamentals which transcend a particular language. Functional programming feels like performed art. It’s satisfying again. Symmetrical, elegant, mathematical. I can tell the presenter *feels* the beauty of the lambda calculus too. Thanks for sharing!
@aMulliganStew
@aMulliganStew 5 жыл бұрын
Mr. Lebec’s talk was excellent. If I had the desire to return to professional programming, I would be knocking at your door.
@JulianTontiFilippini
@JulianTontiFilippini 4 жыл бұрын
Brilliant presentation. I can see why Gabriel said he spent a long time making it.
@sab611
@sab611 6 жыл бұрын
Very helpful on my path to understanding functional programming. If you make any more related vid's I'd like to know.
@Rachel-zw8sy
@Rachel-zw8sy 6 жыл бұрын
Such a great explanation of lambda calculus that I was so confused about -- thank you!
@yingkui
@yingkui 5 жыл бұрын
Great Work. Both the thoughts and the slide deck. Amazing!
@cashmoneyhustler
@cashmoneyhustler Жыл бұрын
Thank you so much. This is the best KZbin video on the topic. I was lost in the sauce until I watched this
@MCLooyverse
@MCLooyverse 2 жыл бұрын
On the bit about XOR or equality (@52:35): On booleans, *not*-equal is the same as XOR. We have && and || operators for AND and OR, but nothing for XOR... except you can use != for that. I also thought it was XOR at first, because I noticed the functions behavior was to return either q or !q, depending on p, it's just that XOR returns !q when p is true, and q when p is false, while equality does the opposite.
@mortenkristiansen2905
@mortenkristiansen2905 Жыл бұрын
This is correct and can be verified quickly by a truth table.
@simongarcia5648
@simongarcia5648 6 жыл бұрын
Thank you for this talk, insanely good and fun!
@AK-vx4dy
@AK-vx4dy Жыл бұрын
Clearly clearest explanation on YT
@Kunleskeleton3332
@Kunleskeleton3332 5 жыл бұрын
thanks so much. for a newbie to understand this, is remarkable on your part.
@profdre
@profdre 6 жыл бұрын
Great video. Easy to understand, the idea to translate lambda into fat arrow functions works perfectly for me... I'm going to spend the rest of the evening playing around with the nodejs prompt. Great video!
@Silkerdax
@Silkerdax 6 жыл бұрын
Very helpful! Thanks for the talk.
@ilkero1067
@ilkero1067 5 жыл бұрын
Excellet introduction! I knew nothing, (despite watching another video by which I was more confused than enlightened) now things are much clearer, bravo!
@wasifzaman1399
@wasifzaman1399 6 жыл бұрын
This is so engaging! Thank you!
@usamakhawaja8571
@usamakhawaja8571 4 жыл бұрын
38 minutes into the talk and can't resist to appreciate. Very well explained
@MinhLe-xk5rm
@MinhLe-xk5rm 5 жыл бұрын
Great tutorials on functional programming. Thank you!
@pawandesh
@pawandesh 4 жыл бұрын
Best video on Lambda Calculus ever. Got to know about the combinatorial logic for the first time so clearly. Thank you. 🙏👍🏽
@samueleagostinelli5346
@samueleagostinelli5346 6 жыл бұрын
This is absolutely fascinating. Thanks!
@monkeytrollhunter
@monkeytrollhunter 4 жыл бұрын
Thank you so much, I had no luck understanding beta reduction but you made it so clear with such complex example.
@korvstenius
@korvstenius 4 жыл бұрын
This presentation blew my mind. Awesome stuff!
@yuanyeo6926
@yuanyeo6926 Жыл бұрын
Remarkable, this is the video recommended by my professor
@yathi
@yathi 3 жыл бұрын
This is the most amazing explanation of Lambda Calculus I have come across! Thank You !
@trblyoo823
@trblyoo823 5 жыл бұрын
Hands down one of the most clear and concise videos I've seen introducing basic concepts of Lambda Calculus. Gabrial's excitement pretty much forced me to crack open a REPL and follow along. I'll now be locked away composing combinators for a very long time. It's also so painfully obvious how this subject can help to write more clean, readable, and declarative code. Great Job on this one. Part two blew my mind! The more I try to "play" with these combinators, the more I see the need for FP data structures. If anyone has any recommendations for similar talks, specifically on Lambda Calc within Javascript, I'd really like to see more on the subject! :D
@odiseezall
@odiseezall 2 жыл бұрын
I finally get how much you need to know and understand to start contemplating creating a start-up company.
@thomasononano9208
@thomasononano9208 5 жыл бұрын
I'm half way through this, just wanted to praise the speaker and the talk, real quality, perfect for my entry-level FP disposition.
@waltermelo1033
@waltermelo1033 4 жыл бұрын
first time in life that i can understand why lambda calculus are so amazing :D congratulations
@myhandlehasbeenmishandled
@myhandlehasbeenmishandled 4 жыл бұрын
Thank you for placing the video of the speaker over what he types. It really helps. /s
@florianwicher
@florianwicher 3 жыл бұрын
This guy does everything right. Also love his use of PowerPoint
@lc11s
@lc11s 3 жыл бұрын
Well done - fantastic lecture - best explanation of lambda calculus I came across so far!
@callumvanheerden1530
@callumvanheerden1530 3 жыл бұрын
You can see his passion. Great work.
@VladTrishch
@VladTrishch 6 жыл бұрын
I am impressed. Math is so beatiful! Thanks for an awesome talk.
@alexlindgren1
@alexlindgren1 3 жыл бұрын
This was a really good presentation, informative, easy to listen to and with some humor. You did a really good job at helping me understand this stuff, thanks for that.
@estebanmarin002
@estebanmarin002 5 жыл бұрын
Amazing! It seems so simple.
@amir650
@amir650 Ай бұрын
What an amazing speaker and so much content to revisit. I love this video.
@florianwicher
@florianwicher 6 жыл бұрын
Loved the presentation. This guy really knows how! :D
@lennyvsguitar
@lennyvsguitar 6 жыл бұрын
Florian Wicher I absolutely agree.
@krish2nasa
@krish2nasa 6 жыл бұрын
Excellent presentation, Thank you very much
@LyubomyrSemkiv
@LyubomyrSemkiv 4 жыл бұрын
I liked how nicely this video was placed in the left bottom corner so I can't see was the lecturer is typing. Good job!
@glebec
@glebec 4 жыл бұрын
Sorry about that! I didn't realize the bottom-left corner was going to be such prime real estate. Slides are linked in the description - I know it's not as good as seeing them live in the video, but I hope they help fill in any gaps regardless! :-)
@LyubomyrSemkiv
@LyubomyrSemkiv 4 жыл бұрын
@@glebec I managed to guess covered parts :-) Thanks for the video!
@piq-dg3vz
@piq-dg3vz 6 жыл бұрын
This is amazing! Thanks!
@myhumblebeginnings
@myhumblebeginnings 2 жыл бұрын
Mr. Lebec, thank you very much for this material of yours. I will do my best to digest this to the best of my intellectual ability.
@ioannpilipchuk8476
@ioannpilipchuk8476 4 жыл бұрын
This video is very helpful and understandable!!!Thanks!
@rboes208
@rboes208 3 жыл бұрын
That was an amazing talk, thank you!
@Joemakatozi1776
@Joemakatozi1776 3 жыл бұрын
Such a clear talk. Thank you.
@azurewang
@azurewang 2 жыл бұрын
so clear explained and slide are just artwork
@wingsonthebus
@wingsonthebus 2 жыл бұрын
The prettiest slides I have ever seen. edit: also some of the most engaging math/programming teaching I have ever been privy to!
@glebec
@glebec 2 жыл бұрын
Thanks!
@RohitWason
@RohitWason 5 жыл бұрын
This is simply beautiful. As beautiful as the concept of Lambda Calculus is, you have done an equally elegant job at explaining it, along with a hint of some JS genius. Thank you!
@bestieboots
@bestieboots 2 жыл бұрын
This is amazingly good. I'm just blown away.
@jags4all
@jags4all 5 жыл бұрын
What a beautiful talk....
@maNIKLAS2012
@maNIKLAS2012 Жыл бұрын
Thanks for the great presentation!
@psychedel0c
@psychedel0c 2 жыл бұрын
This probably just saved my midterm grade, 10000x more clear than anything my professor has ever said. Also, this dude looks like the Jeff Winger of logical mathematics
@glebec
@glebec Жыл бұрын
Hahah, you are the third person to tell me I look like Joel McHale. I don't really see it but I'll take it. 😂
@vld-blv
@vld-blv 4 жыл бұрын
Thank you for this video!
@oneofvalts
@oneofvalts 6 жыл бұрын
Neat, thank you for your effort.
@MorisonMs
@MorisonMs 6 жыл бұрын
phenomenal lecturer
@kevinwang6188
@kevinwang6188 5 жыл бұрын
This is just beautiful and amazing!
@levanroinishvili1
@levanroinishvili1 6 жыл бұрын
Wonderful talk!!! Many thanks!
@glebec
@glebec 6 жыл бұрын
Thank you for the kind feedback. Glad you enjoyed it.
@pgovindraj
@pgovindraj 6 жыл бұрын
Great explanation!
@scifregizmoguy
@scifregizmoguy 4 жыл бұрын
Amazing talk. Thank you.
@aiohto7884
@aiohto7884 Жыл бұрын
Best explanation yet from a high school student perspective thank you :)
@1K1NDR3D
@1K1NDR3D 6 жыл бұрын
Great talk, thanks!
@paxdriver
@paxdriver 5 жыл бұрын
It is so hard to teach this subject, excellent job
@Temporelucis
@Temporelucis 6 жыл бұрын
Super cool, thanks a lot!
@DamjanPavlica
@DamjanPavlica 5 жыл бұрын
It is strange how simple concept is it, but yet I could not easily adjust my brain to that level of abstraction.
@glebec
@glebec 4 жыл бұрын
It honestly took me a lot of reading, thinking, and practicing, and I have a degree in math. But like everything in math, with enough time it becomes much easier. I tried to make it easier than when I learned it! :-)
@amanutkarsh724
@amanutkarsh724 2 жыл бұрын
Thankyou so much for the lecture.
@NathanCho
@NathanCho 3 жыл бұрын
Absolutely beautiful 10/10 Would watch it again
@rob6129
@rob6129 3 жыл бұрын
I was very skeptical at first but it turned out to be well worth the watch
@kenho811
@kenho811 4 ай бұрын
This is an excellent talk. Thank you so much 😊😊
@Shnugs
@Shnugs 2 жыл бұрын
I stumbled across this a couple years ago and struggled to find it again for the longest time. I ended up randomly stumbling across To Mock A Mockingbird and managed to find my way back to this again. Genuinely recommend this as the beginning point for lambda calculus/function programming. Does anyone have any recommendations for what to learn after this
@alexanderhorstkotter2910
@alexanderhorstkotter2910 3 жыл бұрын
Great and fun explanation, thank you very much
@purrkachuu
@purrkachuu 2 жыл бұрын
1000x better than university professor's explanation
@user-ze1es8gr4p
@user-ze1es8gr4p 3 жыл бұрын
omg~ to understand this lecture, I study hard english! worth it! Thank you.
@theogiani8562
@theogiani8562 4 жыл бұрын
Excellent indeed, Thank you !
@adumont
@adumont 2 жыл бұрын
An excelent talk!
@viglioni
@viglioni 3 жыл бұрын
When I started this video I wasnt expecting it to go that further. I loved it! One of the best videos I've ever watched in this subject!
@philipvankampen3394
@philipvankampen3394 4 жыл бұрын
very clear ad thanks for the heads up on 'to mock a mockingbird.' It's on my x-mas list.
@StasBar
@StasBar 3 жыл бұрын
Amazing, you are a great lecturer.
@gumfun2
@gumfun2 3 жыл бұрын
Great video, preparation, delivery, ...
@fringefringe7282
@fringefringe7282 2 жыл бұрын
This is fantastic!
@MatthiasBlume
@MatthiasBlume 8 ай бұрын
A bit of trivia about S and K... TL;DR: The type schemas for K and S are T -> U -> T and (T -> U -> V) -> (T -> U) -> T -> V, respectively. These two types, when read as logical formulas and taken as axioms form a basis of the propositional calculus (with -> as the only connector). In more detail: First let us consider B, which is \fgx.f(gx). This is also known as "function composition" - f is called with the result of calling g on x. S is a "stronger" version of B where the outer function (here f) also receives x as an additional argument while also - like B - receiving gx, i.e., the result of applying the second function to that argument. S = \fgx.fx(gx) Now suppose we want to give types (really: type schemas) to K and S. K is easy. If the type of the first argument of K is T and the type of the second argument is U, then the type of the result is again T. Therefore we have: K: T -> U -> T (Side note: the type arrows group to the right, which meshes well with function application grouping to the left. T -> U -> T is really T -> (U -> T).) Before looking at S, let's again look at its simpler cousin B. Here the second argument is a function from some type T to some other type U, which means that the first argument must be a function able to receive an argument of type U while then producing a result of a third type V. The end result is a function from T to V. B: (U -> V) -> (T -> U) -> T -> V The case of S this is very similar, except the first function not only receives U but also a copy of the T argument: S: (T -> U -> V) -> (T -> U) -> T -> V Now look at only the type schemas and forget about the combinators. We have: T -> U -> T (T -> U -> V) -> (T -> U) -> T -> V Further forget that these are types and instead read them as formulas in propositional calculus, reading the function type arrow -> as implication: T -> U -> T means: If we already know T, then anything (call it U) implies that T. (It does not matter what the U is and whether or not it is true.) (T -> U -> V) -> (T -> U) -> T -> V means: Suppose T implies U (that's the second argument or the middle of the formula). Further suppose that when T is true then U implies V. (That's the first argument. Notice that U does not need to unconditionally imply V, it only needs to imply V when T is true.) Then T implies V. It turns out that these two formulas, when taken as logical axioms, form a basis of the propositional calculus (where the only connector is implication). In other words, every tautology in propositional calculus can be proved from just these two axioms. Isn't that neat? Brought to you courtesy of Mr. Curry and Mr. Howard. :) PS: Of course, the same thing works for the types of the combinators of any other basis, including the one consisting of 5 combinators mentioned in the talk. It just means there are also 5 corresponding axioms then.
@JosephCaburnay
@JosephCaburnay 6 жыл бұрын
Awesome, man! Just awesome!
@nihilist809
@nihilist809 5 жыл бұрын
The enthusiasm is intoxicating.
@nnhm
@nnhm 4 жыл бұрын
The first talk after which I started to understand lambda-calculus
@gustavorino
@gustavorino Жыл бұрын
Awesome, thanks a lot. This is a programming 💎
i cant stop thinking about this exploit
8:40
Low Level Learning
Рет қаралды 174 М.
INO IS A KIND ALIEN😂
00:45
INO
Рет қаралды 21 МЛН
Lambda Calculus - Computerphile
12:40
Computerphile
Рет қаралды 996 М.
David Beazley - Lambda Calculus from the Ground Up - PyCon 2019
3:26:34
The ARM chip race is getting wild… Apple M4 unveiled
4:07
Fireship
Рет қаралды 699 М.
What is a Monad? - Computerphile
21:50
Computerphile
Рет қаралды 588 М.
Essentials: Functional Programming's Y Combinator - Computerphile
13:26
Why Isn't Functional Programming the Norm? - Richard Feldman
46:09
Dear Functional Bros
16:50
CodeAesthetic
Рет қаралды 430 М.