4 ms·
It's a model of programming. Rather, it's a remarkably simple model of programming. Any language could be interpreted [0] into it and thus its behavior is impor
by tel 12y ago
It's a model of programming. Rather, it's a remarkably simple model of programming. Any language could be interpreted [0] into it and thus its behavior is important for the comprehension of what "programming" means.
But that's a bit weak. There are tons of models which achieve these properties. Turing Machines are popular. Why lambda calculus?
One answer is that LC is easily augmented with things like simple types or System F types or Dependent Types to introduce the entire space of nice type systems that people are beginning to really enjoy these days.
A better answer is that LC is essentially nothing more or less than a minimal description of what a "name" means. LC provides the simplest, best notion of variable yet imagined and its influence strikes every time you use one in any language (programmatic, logical, mathematical, human).
This isn't the only way to go (for instance, the SKI calculus is equally powerful as LC, but manages to avoid all naming) but it's a remarkably powerful one which has, if popularity is any metric, been completely dominant throughout the entire history of languages.
So, studying LC is a good way to learn about all that.
[0] Side effects would have to be modeled "in universe", but the principle stands.