2. Abstraction is referred to as a ``powerful and useful tool''. Do you agree or disagree with this statement?
3. Give an example of a parameterless abstraction (i.e. a procedure, or a function which has no parameters) that does not perform exactly the same computation every time it is called. Under what circumstances, in general, will a parameterless abstraction behave like this?