Here's a function that tries to take a function as argument, and return a function as a value. However, when I try to apply the return value, it seems to stay unevaluated:
f(F) := lambda([c], F(c));
g(t) := t*t;
blah: f(g);
blah(y);
results in:
F(y)
F is the name of an argument of f, how is it visible outside of the definition of f?
I'd like
diff(blah(y), y):
to return 2*y, but now it's just returning d/dy F(y).