If that's all it does, then I don't see a problem with implementing it in any language without macros. Let's take simple C. (I didn't test it, or even try to compile - just want to show the idea)
void zap(void *object, void* (*selector)(void *), void (*action)(void*)) {
action(selector(object));
}
Given your explanation: "It lets you apply an arbitrary function[1] to (a variable or a position anywhere within some structure)[2]."Where object is the structure you're operating on, `selector` is a function taking an object and returning a pointer to the position [2]. The `action` is a pointer to an arbitrary function [1].
Your first example would look like this:
int foo[5] = {1, 2, 3, 4, 5};
void *select_first(void *x) {return x;}
void act_times_10(void *x) {int *i = (int *)x; (*i)*=10;}
zap(foo, select_first, act_times_10);
Or am I missing something you didn't include in the description?