@{
|
|
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;
|
|
}
|
|
|
|
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;
|
|
}
|
|
|
|
last(s) {
|
|
s[length(s)-1];
|
|
}
|
|
}
|