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