X-Git-Url: http://lambda.jimpryor.net/git/gitweb.cgi?p=lambda.git;a=blobdiff_plain;f=week4.mdwn;h=e3f0fb956068b0e6c33b07ce9a8ef0e247b98d66;hp=e69832fd8e1cfeebe530a1ff7c119835a460c0ba;hb=792521cd3b2e337d425aadc7d8f09a2eab2eb391;hpb=6c76653f70358ec2dd633335e378bf8ef98fe215 diff --git a/week4.mdwn b/week4.mdwn index e69832fd..e3f0fb95 100644 --- a/week4.mdwn +++ b/week4.mdwn @@ -6,11 +6,11 @@ A: That's easy: let `T` be an arbitrary term in the lambda calculus. If `T` has a fixed point, then there exists some `X` such that `X <~~> TX` (that's what it means to *have* a fixed point). -
-let W = \x.T(xx) in
-let X = WW in
-X = WW = (\x.T(xx))W = T(WW) = TX
-
+

+let L = \x. T (x x) in
+let X = L L in
+X ≡ L L ≡ (\x. T (x x)) L ~~> T (L L) ≡ T X
+
Please slow down and make sure that you understand what justified each of the equalities in the last line. @@ -437,7 +437,7 @@ of the list multiplied to, because that would affect the answer you passed along to the continue-leftwards handler. A **version 5** list encodes the kind of fold operation we're envisaging here, in -the same way that v3 (and [v4](/advanced/#v4)) lists encoded the simpler fold operation. +the same way that v3 (and [v4](/advanced/#index1h1)) lists encoded the simpler fold operation. Roughly, the list `[5;4;3;2;1]` would look like this: @@ -566,6 +566,6 @@ detail](http://okmij.org/ftp/Streams.html#enumerator-stream). larger_computation 3. To extract tails efficiently, too, it'd be nice to fuse the apparatus developed - in these v5 lists with the ideas from [v4](/advanced/#v4) lists. + in these v5 lists with the ideas from [v4](/advanced/#index1h1) lists. But that also is left as an exercise.