translating tweaks
[lambda.git] / hints / assignment_4_hint_3.mdwn
index 48063d3..94e2010 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 [[assignment 4 hint 3 hint 1]], 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.
+