Mercurial > repos > icfp2014
diff code/mike00.lm @ 18:8ff2349f36c6
Wrote treeMap function
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Fri, 25 Jul 2014 21:56:26 -0700 |
parents | c33dce59ce3d |
children | 84f595cff062 |
line wrap: on
line diff
--- 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