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 }