Arithmetic of Functions
1. Arithmetic of Functions
We can define a higher-order function, i.e. functional form that accepts two functions as parameters and returns their sum,
As a running example, we consider two functions:
f(x) = x + 2
g(x) = 3x + 4
These are modeled, respectively, by the following Scheme functions:
(define (f x) (+ x 2))
(define (g x) (+ (* 3 x ) 4))
The higher-order function:
(define (plus func1 func2)
(lambda (x) (+ (func1 x) (func2 x))))
Note the use of lambda in order to return a nameless function. In essence, we are accepting two functions, func1 and func2, and returning a function that takes one parameter x and represents their sum. We can apply this functional form as follows:
((plus f g) 10) ; returns 46.
Or
(define (plus func1 func2 x)
(+ (func1 x) (func2 x))
)
(plus f g 10) ; returns 46.
Define a function (form) that computes the difference between two functions.
2. Imagine an accounting routine used in a bookshop. It works on a list with sublists, which look like this:
Order Number Book Title and Author Quantity Price per Item
34587 Learning Python, Mark Lutz 4 40.95
98762 Programming Python, Mark Lutz 5 56.80
77226 Head First Python, Paul Barry 3 32.95
Write a PURE Python function, which returns the grand sale total in dollar amount. The only parameter to the function is the list, and i/o should be in the main method. PLEASE DO NOT USE For loop except if list comprehension is used.