author Jim Pryor Mon, 4 Oct 2010 01:14:50 +0000 (21:14 -0400) committer Jim Pryor Mon, 4 Oct 2010 01:14:50 +0000 (21:14 -0400)
 assignment4.mdwn patch | blob | history hints/assignment_4_hint_3.mdwn patch | blob | history hints/assignment_4_hint_4.mdwn [deleted file] patch | blob | history

index 7073dc6..12c1ef2 100644 (file)
@@ -68,8 +68,6 @@ lists to see if they're equal. (You just programmed this above.)

Write the fringe-enumeration function. It should work on the implementation of
trees you designed in the previous step.
-
-(See [[hints/Assignment 4 hint 3]] if you need some hints.)
</OL>

@@ -134,7 +132,7 @@ definitions of `even` and `odd`?
notes](/week3/#index4h2) as a model, construct a pair `Y1` and `Y2` that behave
in the way described.

-(See [[hints/Assignment 4 hint 4]] if you need some hints.)
+(See [[hints/Assignment 4 hint 3]] if you need some hints.)

</OL>

index 48063d3..9cfef8a 100644 (file)
@@ -1,2 +1,26 @@
-Hints for enumerating a tree's fringe.
+Hints for Y1,Y2.
+
+*      Begin by trying to define `X1` and `X2` directly, then once they're working, you can abstract back to a pair of combinators `Y1` and `Y2` that generate `X1` and `X2` for a given pair of arguments `T1` and `T2`.
+
+       You want:
+
+               X1 <~~> T1 X1 X2 and
+               X2 <~~> T2 X1 X2
+
+*      X1 is presumably going to have some form like:
+
+               (\elem1 elem2 ... (T1
+                                                       (do-something-with-the-elems-to-make-X1)
+                                                       (do-something-with-the-elems-to-make-X2)
+                                                 ))
+               some-elem1 some-elem2 ...
+
+       Right? What will the form of X2 be?
+
+*      Can you see how to go on?
+
+*      Call the displayed abstract above `(\elem1 elem2 ... (...))` "elem0". What's the relation between `X1`, `elem0`, `elem1`, `elem2`...?
+
+*      Go on, now you can do it.
+

diff --git a/hints/assignment_4_hint_4.mdwn b/hints/assignment_4_hint_4.mdwn
deleted file mode 100644 (file)
index 9cfef8a..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-Hints for Y1,Y2.
-
-*      Begin by trying to define `X1` and `X2` directly, then once they're working, you can abstract back to a pair of combinators `Y1` and `Y2` that generate `X1` and `X2` for a given pair of arguments `T1` and `T2`.
-
-       You want:
-
-               X1 <~~> T1 X1 X2 and
-               X2 <~~> T2 X1 X2
-
-*      X1 is presumably going to have some form like:
-
-               (\elem1 elem2 ... (T1
-                                                       (do-something-with-the-elems-to-make-X1)
-                                                       (do-something-with-the-elems-to-make-X2)
-                                                 ))
-               some-elem1 some-elem2 ...
-
-       Right? What will the form of X2 be?
-
-*      Can you see how to go on?
-
-*      Call the displayed abstract above `(\elem1 elem2 ... (...))` "elem0". What's the relation between `X1`, `elem0`, `elem1`, `elem2`...?
-
-*      Go on, now you can do it.
-
-