X-Git-Url: http://lambda.jimpryor.net/git/gitweb.cgi?p=lambda.git;a=blobdiff_plain;f=week1.mdwn;h=20f33b324bf31e43897da52f7462eec91324eb12;hp=5d482c4c132c7ffd90512c4d941014536123fe6d;hb=08e74348db4458cc482d255dc44a8393e7e78537;hpb=04d43307f66bff9b439ad987f3e10c16773dbc62;ds=sidebyside diff --git a/week1.mdwn b/week1.mdwn index 5d482c4c..20f33b32 100644 --- a/week1.mdwn +++ b/week1.mdwn @@ -56,7 +56,18 @@ It's possible to enhance the lambda calculus so that functions do get identified It's often said that dynamic systems are distinguished because they are the ones in which **order matters**. However, there are many ways in which order can matter. If we have a trivalent boolean system, for example---easily had in a purely functional calculus---we might choose to give a truth-table like this for "and": - true and true = true +

+true and true   = true
+true and true   = true
+true and *      = *
+true and false  = false
+* and true      = *
+* and *         = *
+* and false     = *
+false and true  = false
+false and *     = false
+false and false = false
+
And then we'd notice that `* and false` has a different intepretation than `false and *`. (The same phenomenon is already present with the material conditional in bivalent logics; but seeing that a non-symmetric semantics for `and` is available even for functional languages is instructive.)