X-Git-Url: http://lambda.jimpryor.net/git/gitweb.cgi?p=lambda.git;a=blobdiff_plain;f=week1.mdwn;h=6773a7714f358bdbc6da564719b018a5000ee271;hp=c9b52d1d52acead984f8a6149cdb62db2a39c111;hb=e47611204f506bac2a53a81dd9a0e6e85600575e;hpb=fceb99fda0c4287f9f3c476a26c6e202cf5e26c5 diff --git a/week1.mdwn b/week1.mdwn index c9b52d1d..6773a771 100644 --- a/week1.mdwn +++ b/week1.mdwn @@ -62,6 +62,13 @@ Some authors reserve the term "term" for just variables and abstracts. We'll pro Examples of expressions: x + (y x) + (x x) + (\x y) + (\x x) + (\x (\y x)) + (x (\x x)) + ((\x (x x)) (\x (x x))) The lambda calculus has an associated proof theory. For now, we can regard the proof theory as having just one rule, called the rule of **beta-reduction** or @@ -596,6 +603,7 @@ Here's how it looks to say the same thing in various of these languages. It's easy to be lulled into thinking this is a kind of imperative construction. *But it's not!* It's really just a shorthand for the compound "let"-expressions we've already been looking at, taking the maximum syntactically permissible scope. (Compare the "dot" convention in the lambda calculus, discussed above.) + Some more comparisons between Scheme and OCaml ----------------------------------------------