index: tweak book links
[lambda.git] / implementing_trees.mdwn
index 31dc3fd..c428228 100644 (file)
@@ -1,6 +1,9 @@
 #Implementing trees#
 
 #Implementing trees#
 
-In [[Assignment3]] we proposed a very ad-hoc-ish implementation of trees.
+In [[Assignment3]] we proposed a very ad-hoc-ish implementation of
+trees.  It had the virtue of constructing trees entirely out of lists,
+which meant that there was no need to define any special
+tree-construction functions.
 
 Think about how you'd implement them in a more principled way. You could
 use any of the version 1 -- version 5 implementation of lists as a model.
 
 Think about how you'd implement them in a more principled way. You could
 use any of the version 1 -- version 5 implementation of lists as a model.
@@ -17,10 +20,10 @@ the tree's leaves that are labeled:
         / \
        1   2 
 
         / \
        1   2 
 
-Linguists often use trees of this sort. The inner, non-leaf nodes of the
-tree do have associated values. But what values they are can be determined from
-the structure of the tree and the values of the node's left and right children.
-So the inner node doesn't need its own independent label.
+The inner, non-leaf nodes of the tree may have associated values. But if so,
+what values they are will be determinable from the structure of the tree and the
+values of the node's left and right children. So the inner nodes don't need
+their own independent labels.
 
 In another sort of tree, the tree's inner nodes are also labeled:
 
 
 In another sort of tree, the tree's inner nodes are also labeled:
 
@@ -128,9 +131,9 @@ where the previous tree should be placed.
 
 However, when using trees as a computational tool, one usually does have
 latitude about how to structure a larger tree---in the same way that we had the
 
 However, when using trees as a computational tool, one usually does have
 latitude about how to structure a larger tree---in the same way that we had the
-freedom to implement our sets with lists whose members were just appended in
-the order we built the set up, or instead with lists whose members were ordered
-numerically.
+freedom to implement our [sets](/week4/#index9h1) with lists whose members were
+just appended in the order we built the set up, or instead with lists whose
+members were ordered numerically.
 
 When building a new tree, one strategy for where to put the new element and
 where to put the existing tree would be to always lean towards a certain side.
 
 When building a new tree, one strategy for where to put the new element and
 where to put the existing tree would be to always lean towards a certain side.