X-Git-Url: http://lambda.jimpryor.net/git/gitweb.cgi?p=lambda.git;a=blobdiff_plain;f=week2.mdwn;h=31eef33eb8e8d9031616df970e907bdb7046801d;hp=aa4c453fa3d26ebace5286f1ae377c08a544fe2f;hb=d82bf259b0b28a7d2679c8837e00a12478e377c4;hpb=85f75a5e6a4b6273d9cd74e9bb9e2758102ad1ca diff --git a/week2.mdwn b/week2.mdwn index aa4c453f..31eef33e 100644 --- a/week2.mdwn +++ b/week2.mdwn @@ -39,7 +39,7 @@ Lambda expressions that have no free variables are known as **combinators**. Her > **get-second** was our function for extracting the second element of an ordered pair: `\fst snd. snd`. Compare this to our definition of **false**. -> **ω** is defined to be: `\x. x x (\x. x x)` +> **ω** is defined to be: `\x. x x` It's possible to build a logical system equally powerful as the lambda calculus (and readily intertranslatable with it) using just combinators, considered as atomic operations. Such a language doesn't have any variables in it: not just no free variables, but no variables at all. @@ -58,8 +58,12 @@ combinators: For instance, Szabolcsi argues that reflexive pronouns are argument duplicators. +![test](http://lambda.jimpryor.net/szabolcsi-reflexive.jpg) + +Notice that the semantic value of *himself* is exactly W. +The reflexive pronoun in direct object position combines first with the transitive verb (through compositional magic we won't go into here). The result is an intransitive verb phrase that takes a subject argument, duplicates that argument, and feeds the two copies to the transitive verb meaning. + -![Szabolcsi's analysis of *himself* as the duplicator combinator](szabolcsi-reflexive.jpg) These systems are Turing complete. In other words: every computation we know how to describe can be represented in a logical system consisting of only a single primitive operation!