|
|
@ -1,42 +1,6 @@ |
|
|
|
@{ |
|
|
|
append(s, e) { |
|
|
|
s[length(s)] = e; |
|
|
|
} |
|
|
|
|
|
|
|
map(f, seq, g) { |
|
|
|
out = {}; |
|
|
|
if (g) { |
|
|
|
for (i in seq) { |
|
|
|
e = seq[i]; |
|
|
|
if (g(e)) { e = f(e); } |
|
|
|
append(out, e); |
|
|
|
} |
|
|
|
} else { |
|
|
|
for (i in seq) { |
|
|
|
append(out, f(seq[i])); |
|
|
|
} |
|
|
|
} |
|
|
|
out; |
|
|
|
} |
|
|
|
@{import("boot.mc");} |
|
|
|
|
|
|
|
select(f, s) { |
|
|
|
out = {}; |
|
|
|
for (i in s) { |
|
|
|
e = s[i]; |
|
|
|
if (f(e)) { append(out, e); } |
|
|
|
} |
|
|
|
out; |
|
|
|
} |
|
|
|
|
|
|
|
reject(f, s) { |
|
|
|
out = {}; |
|
|
|
for (i in s) { |
|
|
|
e = s[i]; |
|
|
|
if (!f(e)) { append(out, e); } |
|
|
|
} |
|
|
|
out; |
|
|
|
} |
|
|
|
|
|
|
|
@{ |
|
|
|
toChar(foo) { |
|
|
|
"\"type :"+foo+"\""; |
|
|
|
} |
|
|
@ -45,8 +9,7 @@ |
|
|
|
} |
|
|
|
c = ["earth", "sky", "water"]; |
|
|
|
isSky(x) { x == "sky" } |
|
|
|
c = reject(isSky, c); |
|
|
|
|
|
|
|
c = reject(isSky, c); |
|
|
|
} |
|
|
|
|
|
|
|
@{print(map(p2, [100, 2, 3]));} |
|
|
|