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

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

  • @joriskbos1115
    @joriskbos11154 жыл бұрын

    Watching this video felt like unravelling the world's deepest conspiracy

  • @Yetipfote

    @Yetipfote

    3 жыл бұрын

    This comment is almost on par with the video!

  • @tashburn
    @tashburn6 жыл бұрын

    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
    @alinisar875 жыл бұрын

    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

  • @itskshitij
    @itskshitij6 жыл бұрын

    Just want to say, those were some of the best slides I've ever seen.

  • @ninichanglife
    @ninichanglife5 жыл бұрын

    the best lambda calculus explanation ever

  • @seyikareem8052
    @seyikareem80524 жыл бұрын

    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

  • @ziggy6698
    @ziggy66985 ай бұрын

    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.

  • @SeverityOne
    @SeverityOne4 жыл бұрын

    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!

  • @charliegarrett5993
    @charliegarrett59933 жыл бұрын

    This lecture is just unbelievably good. This guy is a very talented teacher/lecturer

  • @mfrdbigolin
    @mfrdbigolin3 жыл бұрын

    Literally the best talk about lambda calculus on KZread, after watching this video (and the second one), I am enthusiastic to read To Mock a Mockingbird.

  • @codegeek98
    @codegeek982 жыл бұрын

    [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

  • @olivierbegassat851
    @olivierbegassat8516 жыл бұрын

    This was remarkably clear, a lot of thought must have gone into preparing this talk ! Thank you so much for this excellent talk : )

  • @SatyajitGhana7
    @SatyajitGhana75 жыл бұрын

    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
    @ivandrofly8 ай бұрын

    Best explanation on the internet

  • @JulianTontiFilippini
    @JulianTontiFilippini4 жыл бұрын

    Brilliant presentation. I can see why Gabriel said he spent a long time making it.

  • @tauruscolvin
    @tauruscolvin4 жыл бұрын

    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!

  • @patrikhagne9204
    @patrikhagne92043 жыл бұрын

    Beautiful talk! I love the way you tie it into javascript, the one functional language that everyone understands!

  • @myhandlehasbeenmishandled
    @myhandlehasbeenmishandled4 жыл бұрын

    Thank you for placing the video of the speaker over what he types. It really helps. /s

  • @pjnoonan1423
    @pjnoonan14233 жыл бұрын

    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!

  • @MCLooyverse
    @MCLooyverse2 жыл бұрын

    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.

  • @usamakhawaja8571
    @usamakhawaja85714 жыл бұрын

    38 minutes into the talk and can't resist to appreciate. Very well explained

  • @yingkui
    @yingkui5 жыл бұрын

    Great Work. Both the thoughts and the slide deck. Amazing!

  • @AK-vx4dy
    @AK-vx4dy Жыл бұрын

    Clearly clearest explanation on YT

  • @psychedel0c
    @psychedel0c2 жыл бұрын

    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. 😂

  • @Rachel-zw8sy
    @Rachel-zw8sy6 жыл бұрын

    Such a great explanation of lambda calculus that I was so confused about -- thank you!

  • @simongarcia5648
    @simongarcia56486 жыл бұрын

    Thank you for this talk, insanely good and fun!

  • @sab611
    @sab6116 жыл бұрын

    Very helpful on my path to understanding functional programming. If you make any more related vid's I'd like to know.

  • @korvstenius
    @korvstenius4 жыл бұрын

    This presentation blew my mind. Awesome stuff!

  • @aMulliganStew
    @aMulliganStew5 жыл бұрын

    Mr. Lebec’s talk was excellent. If I had the desire to return to professional programming, I would be knocking at your door.

  • @florianwicher
    @florianwicher3 жыл бұрын

    This guy does everything right. Also love his use of PowerPoint

  • @cashmoneyhustler
    @cashmoneyhustler Жыл бұрын

    Thank you so much. This is the best KZread video on the topic. I was lost in the sauce until I watched this

  • @profdre
    @profdre6 жыл бұрын

    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!

  • @ilkero1067
    @ilkero10675 жыл бұрын

    Excellet introduction! I knew nothing, (despite watching another video by which I was more confused than enlightened) now things are much clearer, bravo!

  • @MinhLe-xk5rm
    @MinhLe-xk5rm5 жыл бұрын

    Great tutorials on functional programming. Thank you!

  • @Kunleskeleton3332
    @Kunleskeleton33325 жыл бұрын

    thanks so much. for a newbie to understand this, is remarkable on your part.

  • @monkeytrollhunter
    @monkeytrollhunter4 жыл бұрын

    Thank you so much, I had no luck understanding beta reduction but you made it so clear with such complex example.

  • @yathi
    @yathi3 жыл бұрын

    This is the most amazing explanation of Lambda Calculus I have come across! Thank You !

  • @trblyoo823
    @trblyoo8235 жыл бұрын

    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

  • @Silkerdax
    @Silkerdax6 жыл бұрын

    Very helpful! Thanks for the talk.

  • @lc11s
    @lc11s3 жыл бұрын

    Well done - fantastic lecture - best explanation of lambda calculus I came across so far!

  • @callumvanheerden1530
    @callumvanheerden15303 жыл бұрын

    You can see his passion. Great work.

  • @alexlindgren1
    @alexlindgren13 жыл бұрын

    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.

  • @wasifzaman1399
    @wasifzaman13996 жыл бұрын

    This is so engaging! Thank you!

  • @LyubomyrSemkiv
    @LyubomyrSemkiv4 жыл бұрын

    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!

  • @odiseezall
    @odiseezall2 жыл бұрын

    I finally get how much you need to know and understand to start contemplating creating a start-up company.

  • @pawandesh
    @pawandesh4 жыл бұрын

    Best video on Lambda Calculus ever. Got to know about the combinatorial logic for the first time so clearly. Thank you. 🙏👍🏽

  • @DamjanPavlica
    @DamjanPavlica5 жыл бұрын

    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! :-)

  • @amir650
    @amir650Ай бұрын

    What an amazing speaker and so much content to revisit. I love this video.

  • @VladTrishch
    @VladTrishch6 жыл бұрын

    I am impressed. Math is so beatiful! Thanks for an awesome talk.

  • @thomasononano9208
    @thomasononano92085 жыл бұрын

    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
    @waltermelo10334 жыл бұрын

    first time in life that i can understand why lambda calculus are so amazing :D congratulations

  • @myhumblebeginnings
    @myhumblebeginnings2 жыл бұрын

    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.

  • @vineboomsoundeffect5395
    @vineboomsoundeffect53958 ай бұрын

    The best video on λcalc‼️‼️

  • @rboes208
    @rboes2083 жыл бұрын

    That was an amazing talk, thank you!

  • @estebanmarin002
    @estebanmarin0025 жыл бұрын

    Amazing! It seems so simple.

  • @azurewang
    @azurewang2 жыл бұрын

    so clear explained and slide are just artwork

  • @samueleagostinelli5346
    @samueleagostinelli53466 жыл бұрын

    This is absolutely fascinating. Thanks!

  • @purrkachuu
    @purrkachuu2 жыл бұрын

    1000x better than university professor's explanation

  • @bestieboots
    @bestieboots2 жыл бұрын

    This is amazingly good. I'm just blown away.

  • @yuanyeo6926
    @yuanyeo6926 Жыл бұрын

    Remarkable, this is the video recommended by my professor

  • @krish2nasa
    @krish2nasa6 жыл бұрын

    Excellent presentation, Thank you very much

  • @ioannpilipchuk8476
    @ioannpilipchuk84764 жыл бұрын

    This video is very helpful and understandable!!!Thanks!

  • @maNIKLAS2012
    @maNIKLAS2012 Жыл бұрын

    Thanks for the great presentation!

  • @Joemakatozi1776
    @Joemakatozi17763 жыл бұрын

    Such a clear talk. Thank you.

  • @wingsonthebus
    @wingsonthebus2 жыл бұрын

    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!

  • @florianwicher
    @florianwicher6 жыл бұрын

    Loved the presentation. This guy really knows how! :D

  • @lennyvsguitar

    @lennyvsguitar

    6 жыл бұрын

    Florian Wicher I absolutely agree.

  • @aiohto7884
    @aiohto7884 Жыл бұрын

    Best explanation yet from a high school student perspective thank you :)

  • @rob6129
    @rob61293 жыл бұрын

    I was very skeptical at first but it turned out to be well worth the watch

  • @piq-dg3vz
    @piq-dg3vz6 жыл бұрын

    This is amazing! Thanks!

  • @kenho811
    @kenho8114 ай бұрын

    This is an excellent talk. Thank you so much 😊😊

  • @RohitWason
    @RohitWason5 жыл бұрын

    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!

  • @scifregizmoguy
    @scifregizmoguy4 жыл бұрын

    Amazing talk. Thank you.

  • @gumfun2
    @gumfun23 жыл бұрын

    Great video, preparation, delivery, ...

  • @kevinwang6188
    @kevinwang61885 жыл бұрын

    This is just beautiful and amazing!

  • @vld-blv
    @vld-blv4 жыл бұрын

    Thank you for this video!

  • @MorisonMs
    @MorisonMs6 жыл бұрын

    phenomenal lecturer

  • @jags4all
    @jags4all5 жыл бұрын

    What a beautiful talk....

  • @NathanCho
    @NathanCho3 жыл бұрын

    Absolutely beautiful 10/10 Would watch it again

  • @pgovindraj
    @pgovindraj6 жыл бұрын

    Great explanation!

  • @alexanderhorstkotter2910
    @alexanderhorstkotter29103 жыл бұрын

    Great and fun explanation, thank you very much

  • @philipvankampen3394
    @philipvankampen33944 жыл бұрын

    very clear ad thanks for the heads up on 'to mock a mockingbird.' It's on my x-mas list.

  • @paxdriver
    @paxdriver5 жыл бұрын

    It is so hard to teach this subject, excellent job

  • @MatthiasBlume
    @MatthiasBlume8 ай бұрын

    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.

  • @amanutkarsh724
    @amanutkarsh7242 жыл бұрын

    Thankyou so much for the lecture.

  • @oneofvalts
    @oneofvalts6 жыл бұрын

    Neat, thank you for your effort.

  • @user-ze1es8gr4p
    @user-ze1es8gr4p3 жыл бұрын

    omg~ to understand this lecture, I study hard english! worth it! Thank you.

  • @Shnugs
    @Shnugs2 жыл бұрын

    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

  • @stephenjames2951
    @stephenjames29512 жыл бұрын

    A great talk fun and truly informative.

  • @levanroinishvili1
    @levanroinishvili16 жыл бұрын

    Wonderful talk!!! Many thanks!

  • @glebec

    @glebec

    6 жыл бұрын

    Thank you for the kind feedback. Glad you enjoyed it.

  • @adumont
    @adumont2 жыл бұрын

    An excelent talk!

  • @nihilist809
    @nihilist8095 жыл бұрын

    The enthusiasm is intoxicating.

  • @theogiani8562
    @theogiani85624 жыл бұрын

    Excellent indeed, Thank you !

  • @StasBar
    @StasBar3 жыл бұрын

    Amazing, you are a great lecturer.

  • @1K1NDR3D
    @1K1NDR3D6 жыл бұрын

    Great talk, thanks!

  • @viglioni
    @viglioni3 жыл бұрын

    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!

  • @gustavodelgadillo7758
    @gustavodelgadillo77583 жыл бұрын

    Doing so much Bizz related stuff over the last couple of years had me down during this pandemic, I felt like there's no science in the day to day computer tech industry, but FP is raising and so is lambda calculus, this talk is a gem got my interest back in the math behind computers and inspired me again, just for the beauty of math itself and the art just like You mentioned. I can't thank You enough. My best wishes in this hard times for everyone, be strong.

  • @nnhm
    @nnhm4 жыл бұрын

    The first talk after which I started to understand lambda-calculus

  • @gustavorino
    @gustavorino Жыл бұрын

    Awesome, thanks a lot. This is a programming 💎

  • @riebeck1986
    @riebeck19862 жыл бұрын

    Thank you for making this !!

  • @glebec

    @glebec

    2 жыл бұрын

    Thanks for watching!