continuing assignment4
[lambda.git] / hints / assignment_4_hint_2.mdwn
diff --git a/hints/assignment_4_hint_2.mdwn b/hints/assignment_4_hint_2.mdwn
new file mode 100644 (file)
index 0000000..6bcd770
--- /dev/null
@@ -0,0 +1,24 @@
+
+<!--
+let list_equal =
+    \left right. left
+                ; here's our f
+                (\hd sofar.
+                    ; deconstruct our sofar-pair
+                    sofar (\might_be_equal right_tail.
+                        ; our new sofar
+                        make_pair
+                        (and (and might_be_equal (not (isempty right_tail))) (eq? hd (head right_tail)))
+                        (tail right_tail)
+                    ))
+                ; here's our z
+                ; we pass along the fold a pair
+                ; (might_for_all_i_know_still_be_equal?, tail_of_reversed_right)
+                ; when left is empty, the lists are equal if right is empty
+                (make_pair
+                    true ; for all we know so far, they might still be equal
+                    (reverse right)
+                )
+                ; when fold is finished, check sofar-pair
+                (\might_be_equal right_tail. and might_be_equal (isempty right_tail))
+-->