•Functions which take arguments and return a value based only on those arguments are called “functional”
•But functions in C++ can modify all sorts of variables and parameters beyond the variables they were given as arguments
•When a function uses or modifies a variable that was not in its list of arguments it is called “side-effecting”
•Side-effecting is generally discouraged