L20: Church Numerals

Поділитися
Вставка
  • Опубліковано 1 лют 2025

КОМЕНТАРІ • 13

  • @chandrachurmukherjeejucse5816
    @chandrachurmukherjeejucse5816 Рік тому +2

    Thank you so much for the lecture. finally lambda calculus is making some sense to me. Really crisp and to the point lecture.

  • @bmanturner
    @bmanturner 3 роки тому +2

    I'm taking a programming languages course concurrent with yours and hearing this material explained another way has helped me tremendously. Thank you for your work

    • @bmanturner
      @bmanturner 3 роки тому +2

      That class is taught by Gilray, btw. I just found out you two have worked together before (on C++ HAMT at the very least).

  • @MaxwellLysle
    @MaxwellLysle Рік тому +1

    Thanks for the video. It helped me get through another section of SICP. It also makes me feel pretty smart knowing how to do this :^).

  • @axelmarruenda2858
    @axelmarruenda2858 3 роки тому +1

    Excellent video. It has really helped me a lot to better understand Lambda Calculus as a whole! Thank you!!

  • @prajunathunt
    @prajunathunt 3 роки тому +1

    A day before the exam at 1.25x speed.Thank you for these uploads.

  • @user-bi9rp2nt1r
    @user-bi9rp2nt1r 2 роки тому

    I was looking for a nice explanation like this for a week now and I finally found it, thank you so much!!!🥰

  • @mengzhang1941
    @mengzhang1941 3 роки тому

    Thank you so much! Really appreaciate your clear explanation (And the record and edit of the video is awesome!).

  • @chanalan5846
    @chanalan5846 2 роки тому

    Thank you so much for your explanation!!

  • @very_uniq_handle
    @very_uniq_handle 3 роки тому +4

    I believe the definition of "multiplication" is wrong. The definition in this video is actually for "exponentiation".

  • @NithinMonni
    @NithinMonni 2 роки тому

    Couldn't we implement the plus function using the "succ" function we defined earlier?

  • @ceving865
    @ceving865 Рік тому +1

    Does this have any practical relevance? I am wondering why would anybody do this instead of putting an immediate value into a register: `mov ax, 3`

    • @krismicinski
      @krismicinski  Рік тому +5

      Hi there--I think it is not right to say that there is no practical relevance because in an assembly language you could load a register. To say so is to imply that only typical CPU-based architectures matter. The relevance of Church encodings to computing is in its demonstration of the Turing-completeness of the lambda calculus, which is the "assembly language" of functional programming. It is true it is an arbitrary choice, but no more arbitrary choice than taking assembly language as the basis for your computation. For example, if you have only assembly language, you do not have higher-order functions. You can implement higher-order functions by using an encoding, dynamically-allocated memory, and similar techniques--but assembly by itself does not provide you with the means to express higher-order functions in their full generality. It would, of course, be possible demonstrate this--that is what the core of functional compilers do (e.g., conversion to CPS or A-Normal form, which have a deep connection to instruction-level assembly), but such an encoding is unfortunately beyond the scope of an undergraduate course.