# HG changeset patch # User Michael Pavone # Date 1406350586 25200 # Node ID 8ff2349f36c652728e7ceb16b97cb2d53490c37d # Parent c33dce59ce3d3ed168511e8776f28e48ce7f575b Wrote treeMap function diff -r c33dce59ce3d -r 8ff2349f36c6 code/mike00.lm --- a/code/mike00.lm Fri Jul 25 21:40:49 2014 -0700 +++ b/code/mike00.lm Fri Jul 25 21:56:26 2014 -0700 @@ -88,6 +88,28 @@ get: idx fromTree: (tree tail) size: size } + treeMap:size <- :tree fun :size { + ret <- 0 + half <- size / 2 + if: size = 2 { + ret <- #[(fun: (tree value)) (fun: (tree tail))] + } else: { + if: size = 1 { + ret <- #[(fun: (tree value)) 0] + } else: { + ret <- #[ + (treeMap: (tree value) fun size: half) + (treeMap: (tree tail) fun size: size-half) + ] + } + } + ret + } + + treeMap <- :tree fun { + #[(tree value) (treeMap: (tree tail) fun size: (tree value))] + } + height <- 0 width <- 0 @@ -106,6 +128,7 @@ print: (get: 0 fromTree: tree) print: (get: 6 fromTree: tree) print: (get: 8 fromTree: tree) + print: (treeMap: tree :el { el + 1 }) } } \ No newline at end of file