From ad4eef901340bd0411469aebe125de740864f9b6 Mon Sep 17 00:00:00 2001 From: Chris Barker Date: Mon, 17 Jan 2011 23:14:53 -0500 Subject: [PATCH] edits --- hints/assignment_4_hint_3_alternate_2.mdwn | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/hints/assignment_4_hint_3_alternate_2.mdwn b/hints/assignment_4_hint_3_alternate_2.mdwn index b2ddef82..a0ed78dc 100644 --- a/hints/assignment_4_hint_3_alternate_2.mdwn +++ b/hints/assignment_4_hint_3_alternate_2.mdwn @@ -83,7 +83,9 @@ In the original, `h` was somehow *half* of the fixed point, so that `h h` computed the fixed point. In the schema here, `h1` had better be a function which, when you give it suitable arguments, computes the first fixed point `X1` (likewise for `h2` wrt the second fixed point -`X2`). Then we can arrange for our definition to return the desired +`X2`). + +Then we can arrange for our definition to return the desired fixed point like this: let Y1 = \pe po . (\h1 h2 . pe (h1 [blah])(h2 [blah])) @@ -91,7 +93,7 @@ fixed point like this: (\h1 h2 . ...) The term in the middle line is going in for `h1`, so it had better -be the kind of thing which, when you give it suitable arguments, +also be the kind of thing which, when you give it suitable arguments, computes a fixed point for `pe`: let Y1 = \pe po . (\h1 h2 . pe (h1 [blah]) (h2 [blah])) @@ -102,7 +104,7 @@ But the third line must help compute a fixed point for `po`. All we need to do is figure out what the arguments to `h1` and `h2` ought to be. Final guess: in the original, `h` took one argument (a -copy of itself), so once again, we'll need two arguments. Here's +copy of itself), so once again, here we'll need two arguments. Here's where the mutual recursion comes in: the two arguments to `h1` are a copy of itself, and a copy of `h2` (symmetrically for `h2`). So the complete definition is -- 2.11.0