Consider this text from page 7 of the book in the title.
"In the case of the function abs, if we are working with integers, the domain and the range are Z, so we write abs : Z−→Z. In the case of the addition function for integers, the domain is the set of pairs of integers Z × Z and the range is Z, so we write add : Z × Z−→Z. Note that a function may not necessarily use all the elements of the specified range. The function abs never takes on the value −1 even though −1 ∈ Z. A function that does use all the elements of the range is said to be onto the range"
A couple things I find confusing...
Is the purpose of range not to specify what exactly the output of the function can be? Why can the set of integers be the range of abs() when integers include negative numbers?
Consider the wording "The function abs never takes on the value −1 even though −1 ∈ Z". Is "takes on" equivalent to saying "produces an output of"? "Takes on" sounds to me like input but abs() does take input of -1.