In all parts of this assignment, implement iteration using recursion. Do NOT use the iterative "do" construction in Scheme.
(mapfun (list cadr car cdr) '((A B) (C D) (E F)))should return (B C (F)) since (cadr '(A B)) => B, (car '(C D)) => C, and (cdr '(E F)) => (F).
If FL and L are of different lengths, it should stop whenever it reaches the end of either one; e.g.
(mapfun (list cadr car) '((A B) (C D) (E F))) andshould both return (B C).
(mapfun (list cadr car cdr) '((A B) (C D))) and
(filter (list (lambda (Z) (equal? Z 'A)) (lambda (Z) (member Z '(D E F))) (lambda (Z) (member Z '(C B A)))) 'A)should return the list consisting of the first and third lambda expression. This won't be obvious from the interpreter print out, which will just be something like (#[
Note: the conditions in "if" and in "cond" are considered to be satisfied if
they are not #f.
Thus (if '(A B C) 4 5) evaluates to 4.
(cond (1 4) (#t 5)) evaluates to 4.
Even (if '() 4 5) evaluates to 4, as in Scheme the empty list () is not the same as the Boolean #f. (Other versions of LISP conflate these two.)
(mapfun (comparatorFuns 4) '(20 10 0 -10)) evaluates to (#t #t #f #f)since 20>1, 10>2, 0>3, -10>4 evaluate to #t, #t, #f, #f, respectively.
(mapfun (filter (comparatorFuns 4) 3) '(10 0)) evaluates to (#t #f).