[Closed] Creating a function for a for-loop
I am using the exact same for loop over and over again through my script, but with a different expression being executed inside in each instance. Heres an example (not working, of course) …
fn testLoop expr =
(
for x = 1 to 10 do expr
)
testLoop (print x)
testLoop (sum += x)
Is a way to package the for loop into a function and be able to pump in a different expression each time? Or do I just have to write out the for loop each time I want to use it?
Thank you!
Nevermind, figured it out.
sum = 0
fn testPrint val =
(
print val
)
fn testSum val =
(
sum += val
)
fn testLoop tester =
(
for x = 1 to 10 do tester x
)
testLoop (testPrint)
testLoop (testSum)
print sum
Actually, that still doesn’t help me for instances where my other functions require more than one variable input…
sum = 0
fn testSum meh val =
(
sum += (val + meh)
)
fn testLoop tester =
(
for x = 1 to 10 do tester x
)
testLoop (testSum 3)
print sum
Have you tried passing the expression as a string, and evaluating that string inside the function with eval?
I don’t have max installed on this laptop so I can’t test it, but maybe it could work.
Cool! I was trying that earlier when I was trying to pass the variable x in from outside the function, but wasn’t having success (for reasons which are obvious to me now). Hadn’t thought to try it since, but just did for passing in a known variable and it worked! Thanks!
sum = 0
fn testSum val step step2 =
(
sum += (val + step + step2)
)
fn testLoop tester =
(
for x = 1 to 10 do execute(tester + (x as string))
)
testLoop "testSum 3 4 "
print sum