+++ /dev/null
-
-#Reversing a list#
-
-How would you define an operation to reverse a list? (Don't peek at the
-[[lambda_library]]! Try to figure it out on your own.) Choose whichever
-implementation of list you like. Even then, there are various strategies you
-can use.
-
-
-
-<!--
-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
- (not (isempty right))
- (reverse right)
- )
- ; when fold is finished, check sofar-pair
- (\might_be_equal right_tail. and might_be_equal (isempty right_tail))
--->
-
-[[Implementing trees]]