a routine that accepts one or more arguments and returns a single result is called a _______