types of functions and their domain and range