Higher Order Procedures: 1. Define a procedure (pa f x) which "partially applies" a 2 argument procedure f to its first argument x. Example: (define inc (pa + 1)) (inc 3) => 4 (define (pa f x) 2. Currying lets us pass a procedure its arguments one at a time. From the problem set, curry is defined as (define (curry f) (lambda (x) (lambda (y) (f x y)))) Write a procedure (uncurry cf) which takes a curried procedure and returns a procedure of two arguments (so (uncurry (curry +)) is +) (define (uncurry cf) 3. What does the procedure returned by (pa pa pa) do? 4. What does the procedure returned by (uncurry curry) do? List Practice: 1. Use map to double every element of a list l. 2. Use filter to remove from a list l any numbers that are not squares of integers. 3. Use accumulate to count the number of even numbers in a list l.