Lambda Calculus: The foundation of functional programming, and the simplest programming language

แชร์
ฝัง
  • เผยแพร่เมื่อ 8 ม.ค. 2025

ความคิดเห็น • 38

  • @herbiejames5637
    @herbiejames5637 ปีที่แล้ว +18

    Obviously understanding the value of lambda calculus is in exploring how robust it is on an abstract level, but it would be great to see this in an applied context as well! Thank you for your content!

  • @RoseS-mf8ye
    @RoseS-mf8ye 8 หลายเดือนก่อน +6

    This is the best lambda calculus video I've watched of all. Thank you!

  • @giuliopimenoff
    @giuliopimenoff ปีที่แล้ว +5

    Thank you so much, this was such a great explanation

  • @matematicke_morce
    @matematicke_morce ปีที่แล้ว +9

    Great video, by far the best explanation I've seen on the topic! My only critique is that the animations were a bit too fast, especially in the part about basic arithmetic operations

  • @nilcipher1351
    @nilcipher1351 10 หลายเดือนก่อน +2

    I finally understand the y-combinator now.

  • @101nka
    @101nka 10 หลายเดือนก่อน +1

    Great video! well explained

  • @anakimluke
    @anakimluke ปีที่แล้ว +3

    thanks for the video! I find the topic so interesting!

    • @anakimluke
      @anakimluke ปีที่แล้ว

      ps. your next video is on category theory!!?? even more interested now!!

  • @miketurn5
    @miketurn5 ปีที่แล้ว

    Extremely interesting way of computing already curious to learn more about catergory theory!

  • @beantown_billy2405
    @beantown_billy2405 ปีที่แล้ว +3

    3:05 does the function return itself (i.e. return a function), or the value it received?

    • @raphaeld9270
      @raphaeld9270 11 หลายเดือนก่อน +4

      It is an error in the video it seems : `f(x) =x ` is the Identity function and just returns the input value as its output.
      12:26 is closer to a function that "returns itself".

    • @LambdaJack
      @LambdaJack 8 หลายเดือนก่อน +1

      Which function!? A composition specialized to it's recursive specialization is it's recursive specialization.
      A better name than Y could be "recursive", as in "(recursive compositio)". "id" as composition does not _specify_ at all what should be done, so it could be anything.
      As a Degenerate Case a Composition can take the Self-Reference and do nothing with it.

    • @beantown_billy2405
      @beantown_billy2405 8 หลายเดือนก่อน +1

      @@LambdaJack The function at 3:05, f(x)=x

  • @monsterhunter8595
    @monsterhunter8595 11 หลายเดือนก่อน

    Very good video!

  • @jonathandyment1444
    @jonathandyment1444 6 หลายเดือนก่อน

    Yesterday I heard of Lambda Calculus for the first time. It is something that is right up my street and I look forward to understanding it soon. However, for now, I am encountering barrage after barrage of geeky drivel from one geek back to himself and his fellow geeks who are entertaining one another with the notion that they have explained this thing clearly and adequately.

  • @irok1
    @irok1 ปีที่แล้ว +3

    Multiplication without recursion was crazy to see. Really showcases the possibilities of lambda calculus.
    Great video, any chance you could increase your volume slightly?

  • @kahnfatman
    @kahnfatman 6 หลายเดือนก่อน +8

    I am happy that the Romans did not invent lambda Calculus -- otherwise buildings worldwide must bear the mark of Church Encoding f(f(f(f(f(f(f(f(f(f(fx))))))))))))

  • @plablo_plablo
    @plablo_plablo 6 หลายเดือนก่อน

    Can you enumerate each of the lambda calculus functions in order of the number of bits of information that it takes to represent their function?

  • @ivandrofly
    @ivandrofly ปีที่แล้ว +1

    Good one thanks

  • @joejeffrey1436
    @joejeffrey1436 9 หลายเดือนก่อน

    Instead of using church encodings a great alternative is PCF xx

  • @primenumberbuster404
    @primenumberbuster404 ปีที่แล้ว +12

    Haskell is goated

  • @chakkawatsonaruea5088
    @chakkawatsonaruea5088 ปีที่แล้ว +1

    Great video.
    I wished you putting a little more emphasis on, explicit putting parentheses on lambda abstraction vs no explicit parentheses.
    For example:
    Lambda x.x y
    Is different then:
    (Lambda x.x) y
    Sorry if bad English.

    • @TonyZhang01
      @TonyZhang01  ปีที่แล้ว +1

      Definitely. I hoped that the use of parentheses was pretty clear based on the examples and what I wrote, and also because it is used the same way as they are normally used, so if I focused on talking about it it might seem more confusing than it actually is

  • @Ivan-qi2du
    @Ivan-qi2du 4 หลายเดือนก่อน +2

    Suggestion: speaks more slowly and clearly, this video is difficult to follow.

  • @tsunningwah3471
    @tsunningwah3471 9 หลายเดือนก่อน

    有沒有中文的

  • @jacobcohen76
    @jacobcohen76 ปีที่แล้ว +3

    First!

  • @paulomarcos.5585
    @paulomarcos.5585 7 หลายเดือนก่อน

    λ Beautiful λ

  • @basilalharbi3293
    @basilalharbi3293 ปีที่แล้ว +1

    Second

  • @tsunningwah3471
    @tsunningwah3471 9 หลายเดือนก่อน

    chinz

  • @GlaukNami
    @GlaukNami 10 หลายเดือนก่อน

    The quality of information Is exelent but the way how It Is explained Is really low level. Really Fast to have time to be understand. Sonetimes It looks that It Is an automatic voice that speak.
    I really Belive that this video Is superwow for the content but It Is terribly hard to really understand the content.

  • @MarkVolkmann
    @MarkVolkmann 8 หลายเดือนก่อน +1

    You say that the full definition of the add function is 🐑fxmn. (m f) (n f x). Sorry, I haven’t found a way to input the lambda character on an iPad, so I used the lamb emoji.
    How can I walk through the steps to apply that function? Is it like this?
    🐑fxmn. (m f) (n f x) f x 2 3
    (2 f) (3 f x)
    What do I do from here?

    • @MarkVolkmann
      @MarkVolkmann 8 หลายเดือนก่อน +1

      I think I found an answer.
      (λfxmn. (m f) (n f x)) 2 3
      -- Substitute 2 for m and 3 for n.
      λfx. (2 f) (3 f x)
      -- Substiture the λ terms for 2 and 3.
      λfx. (λfx.f (f x) f) (λfx.f (f (f x)) f x)
      -- Apply the arguments f and x in the last term.
      λfx. (λfx.f (f x) f) (f (f (f x)))
      -- Apply the argument f in the last term.
      λfx. (λx.f (f x)) (f (f (f x)))
      -- Apply the argument `(f (f (f x)))` to the function on its left.
      λfx. f (f (f (f (f x))))
      -- This is the definition of the number 5.

    • @MarkVolkmann
      @MarkVolkmann 8 หลายเดือนก่อน

      I haven’t been able to work out a similar set of steps to demonstrate multiplication though. I could use help with that.

    • @Lambda_Ovine
      @Lambda_Ovine 11 วันที่ผ่านมา +1

      using the lamb emoji is genius