I have a problem which I think should be fairly easy to solve (I guess) but I don’t know how.
I’ll try to describe it as on-point as possible.
I want to define an array of “formulas” that I want to evaluate at different times.
I tried it with expressions and it worked really well at first sight. Here is a simplified example:
ex1 = :(3 + a^2) ex2 = :(5 + a) ex3 = :(12) arr = [ex1, ex2, ex3] a=15 eval.(arr)
This is exactly what I need (I love that I can evaluate the whole array with just one
.eval call and get an array back) BUT: it only works with global
a since expressions always get evaluated in global scope.
Now where I want to evaluate this stuff is in a scope where
a is local.
Of course I googled and found the advice “try it with functions”. Apart from the problem that I don’t know how to call a bunch of functions in an array with one call I also wasn’t successful in trying to access local variables.
This simple example (with just one function) doesn’t work:
f = () -> a + b^2 + 20 for a = 1:10 b = a-1 println(f()) end
I get an
UndefVarError: b not defined.
How could I make this work?
Any help is greatly appreciated!