So here is the start of a super-advanced (hmm) calculator macro called my_calculator:
my_calculator executes a subroutine called my_doubler, and passes it the number 10.
Here is the subroutine my_doubler, which expects to receive a parameter value, which will be used for the local variable "number".
my_doubler performs the complex calculation, and returns the result to my_calculator.
my_calculator brings up an alert with the answer. ![]()
I'm sure it's obvious that my_calculator could call other subroutines as needed – and that other macros could also be set up to execute my_doubler.
It's all easy and logical – once you know how. ![]()

