Files
Noja/examples/compare.noja
T
2022-12-07 23:48:16 +01:00

42 lines
729 B
Plaintext

fun compareLists(a: List, b: List) {
len = count(a);
if len != count(b):
return false;
i = 0;
while i < len: {
if a[i] != b[i]:
return false;
i = i+1;
}
return true;
}
fun compareMaps(a: Map, b: Map) {
keys = keysof(a);
len = count(keys);
if len != count(b):
return false;
i = 0;
while i < len: {
k = keys[i];
if a[k] != b[k]:
return false;
i = i+1;
}
return true;
}
fun compareAny(a, b) {
Ta = type(a);
Tb = type(b);
if Ta != Tb:
return false;
if Ta == List:
return compareLists(a, b);
if Ta == Map:
return compareMaps(a, b);
return a == b;
}