Lambda Calculus - Computerphile

preview_player
Показать описание
The basis of almost all functional programming, Professor Graham Hutton explains Lambda Calculus.

This video was filmed and edited by Sean Riley.

Рекомендации по теме
Комментарии
Автор

"The answer is actually really easy."
*Introduces an entire galaxy of new concepts in the answer.

illustriouschin
Автор

I was starting to read my copy of Programming in Haskell and I realized the author was from the University of Nottingham, so I looked his name up to see if he'd appeared in any videos and I was shocked to find out this is him! So cool to see that I already both knew and liked Professor Hutton before even starting his book!

jflopezfernandez
Автор

Just to point that out: functions only take one argument. So what the "addition" function:
λx. λy. x + y
actually does is it takes x and then returns a function:
λy. x + y
where x is replaced with given input and y is expected as another input, but that's another function. And that's what is the coolest thing about the lambda-calculus: black boxes can take black boxes and return black boxes.

vfpzznt
Автор

this guy's boxes and arrows are perfect, wtf

duckymomo
Автор

"Every computer scientist should know about this"
People that only studied object-oriented programming: _shakes in fear_

NoorquackerInd
Автор

As a computational biology / bioinformatics major I'm delighted to hear a 'pure' computer scientist mention the similarities between biology and computer science :)

maartendj
Автор

requesting a video of him discussing Lambda Recursion

jgcooper
Автор

Probably one thing this video is lacking is emphasizing fact that as `x` you can pass not only numbers but another function too. This way `TRUE FALSE TRUE` look very strangle but have meaning. Using other syntax we could write this like that: `TRUE(FALSE, TRUE)` this look and work same as `f(5)` or `sin(Pi*2)` but instead returning number its return another function. As a approximation we could write `λ x. λ y. x + y` as `f(x, y) = x + y` and `λ b. FALSE TRUE` as `not(b) = b(FALSE, TRUE)`.

von_nobody
Автор

3:37 Note that each λ represents a function definition: so “λx.λy.x + y” is not (directly) a function of two arguments: it is a function of one argument (x) returning a function of another single argument (y) which returns the sum!

lawrencedoliveiro
Автор

I imagine that if someone had never heard of the lambda calculus before and they watched this video, they would have a problem when they hit his claim that it can encode any computation. He says, correctly, that the lambda calculus includes functions and variables and a means of application... but he previously used an addition operator and the number '1'. Lambda calculus does not include either of those things. They have to be constructed. The ways they are constructed are pretty interesting, IMO.

DustinRodriguez_
Автор

This feels like listening to an alien explaining logic. It's so much different from the way I'm used to think about it, yet it makes perfect sense once translated

XDinky
Автор

Haskell Brooks Curry got his entire name as computer science terminologies. What an achievement.

y__h
Автор

The Y Combinator.

That takes me back to school.

Our class was given the assignment to come up with "tying the knot" to allow recursion in lambda calculus.

A few students got it (in different ways), and I was SO CLOSE to getting the Y combinator, but didn't get it to work.

That class was so much fun.

GameDev
Автор

I'm a computer programmer with 25 years' experience and I am totally baffled!
I've never understood Haskell either. Perhaps I can't see the wood for the trees.

chriswilson
Автор

Whats the deal with the camera pointed at the paper?

iroxudont
Автор

I'm really glad I took this optional class in my CS-Bachelor which was called "Alternative Programming Paradigms" where we explored both logical programming with Prolog and functional programming with a LISP dialect called Racket. Even understanding only the core concepts of this languages just opens up the mind so much and makes you think different about problems when comming back to Java or Python

TheRastaDan
Автор

That bit at the end about biological systems running on something like lambda calculus was a mind exploder.

andythedishwasher
Автор

Not entirely correct; the basic untyped lambda calculus doesn't have numbers and operations like +. They have to be encoded using the three fundamental constructs, i.e., variables, lambda abstractions and applications.

jyrikgauldurson
Автор

Never delete this video. As a university comp sci student, this video is invaluable to me. The examples are on point, the explanation is succinct, history for background- I'm only halfway in, but I've understood SO MUCH. THANK YOU.

vedantnemane
Автор

Interesting, but "why is it useful" is never addressed. Famous researchers, lambda calculus is compact so probably elegant, and an example of basic logic. But *why* is lambda calculus useful? What insights has it produced apart from being a simple & effective computing model? In my opinion this should go at the start of the video, before history and details!

bartvh