1
2func mymapsum(map a, map b): map {
3  for (k in b) {
4    if (!haskey(a, k)) {
5      a[k] = b[k];
6    }
7  }
8  return a;
9}
10
11func mymapdiff(map a, map b): map {
12  for (k in b) {
13    if (haskey(a, k)) {
14      unset a[k]
15    }
16  }
17  return a;
18}
19
20func myleafcount(map m) : int {
21  int sum = 0;
22  for (k in m) {
23    sum += 1;
24    if (ismap(m[k])) {
25      sum += leafcount(m[k])
26    }
27  }
28  return sum;
29}
30
31func mylength(map m) : int {
32  int sum = 0;
33  for (k in m) {
34    sum += 1;
35  }
36  return sum;
37}
38