C compiler with embedded metalanguage.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

45 rivejä
671 B

@{
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];
}
nil;
}