G(x_1, x_2, x_3, ..., x_n-1) = F(a, x_1, x_2, x_3, ..., x_n-1) (in case of Fix-first-parameter function),

G(x_1, x_2, x_3, ..., x_n-1) = F(x_1, a, x_2, x_3, ..., x_n-1) (in case of Fix-second-parameter function).

For example:

1.

- Code: Select all
`(define function1 (lambda (x y z) (+ x (* 2 y) (* 3 z))))`

(display ((Fix-first-parameter function1 1) 2 3))

should return:

- Code: Select all
`14`

2.

- Code: Select all
`(define function1 (lambda (x y z) (+ x (* 2 y) (* 3 z))))`

(display ((Fix-second-parameter function1 1) 2 3 ))

should return:

- Code: Select all
`13`

3.

- Code: Select all
`(define function2 (lambda (x y z s) (cons (+ x (* 2 y)) (+ z (* 4 s)))))`

(display ((Fix-second-parameter function2 2) 1 3 2))

should return:

- Code: Select all
`(5 . 11)`

---

Very important is fact, that arguments x_1, ..., x_n-1 are given not as a list by directly. I don't know how to extract (currying?) them and write a function that will work properly on the examples given above. I hope that some of you will help me.