Mercurial > repos > icfp2014
comparison 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 |
comparison
equal
deleted
inserted
replaced
17:c33dce59ce3d | 18:8ff2349f36c6 |
---|---|
86 size <- tree value | 86 size <- tree value |
87 print: #[0 size] | 87 print: #[0 size] |
88 get: idx fromTree: (tree tail) size: size | 88 get: idx fromTree: (tree tail) size: size |
89 } | 89 } |
90 | 90 |
91 treeMap:size <- :tree fun :size { | |
92 ret <- 0 | |
93 half <- size / 2 | |
94 if: size = 2 { | |
95 ret <- #[(fun: (tree value)) (fun: (tree tail))] | |
96 } else: { | |
97 if: size = 1 { | |
98 ret <- #[(fun: (tree value)) 0] | |
99 } else: { | |
100 ret <- #[ | |
101 (treeMap: (tree value) fun size: half) | |
102 (treeMap: (tree tail) fun size: size-half) | |
103 ] | |
104 } | |
105 } | |
106 ret | |
107 } | |
108 | |
109 treeMap <- :tree fun { | |
110 #[(tree value) (treeMap: (tree tail) fun size: (tree value))] | |
111 } | |
112 | |
91 height <- 0 | 113 height <- 0 |
92 width <- 0 | 114 width <- 0 |
93 | 115 |
94 main <- { | 116 main <- { |
95 /* map <- initWorld value | 117 /* map <- initWorld value |
104 tree <- makeTree: lst | 126 tree <- makeTree: lst |
105 print: tree | 127 print: tree |
106 print: (get: 0 fromTree: tree) | 128 print: (get: 0 fromTree: tree) |
107 print: (get: 6 fromTree: tree) | 129 print: (get: 6 fromTree: tree) |
108 print: (get: 8 fromTree: tree) | 130 print: (get: 8 fromTree: tree) |
131 print: (treeMap: tree :el { el + 1 }) | |
109 } | 132 } |
110 | 133 |
111 } | 134 } |