https://openlab.citytech.cuny.edu/mat1375coursehub/lessons/lesson-6-operations-on-functions/