BabaJ
Then in your function don't dovector * vector.
You do whatever it is that you need your function to do.
Then when ever you call your function you only have to give it the two arguments (two vectors), and it multiplies the two vectors in the way you wrote your function to give you what you inteded.
And you only had to write that ‘procedure’ once(in your function). That's the point of the function. I wasn't implying your function to literally just do - vector * vector.
I think I'm not making my point across. There's no way to predict all procedures one will use and build functions before hand for all possible combinations, but if the building blocks allow certain rules, then nobody even needs to make knee-jerk functions for these and be delayed every time they try something new but only loop for something custom.