Function 4: my-map a. In CLISP define your own function that duplicates the func
ID: 3884929 • Letter: F
Question
Function 4: my-map
a. In CLISP define your own function that duplicates the functionality of mapcar from the standard library. You may not use the built-in mapcar function as a helper function. Your implementation must be recursive.
b. In Racket define your own function that duplicates the functionality of map from the standard library. You may not use the built-in map function as a helper function. Your implementation must be recursive.
• Input: The input to my-map is a function that takes a single argument and a homogeneous list of elements of the same data type compatible with the procedure. Note: the function argument can be named or anonymous (lambda).
• Output: A new list of the original elements with the same procedure applied to each.
• Examples:
> (my-map sqrt '(9 25 81 49))
'(3 5 9 7)
> (my-map add1 '(6 4 8 3))
'(7 5 9 4)
> (my-map (lambda (n) (* n n)) '(5 7))
'(25 49)
> (my-map even? '(2 5 7 12))
'(#t #f #f #t)
Explanation / Answer
b.
> (define (my-map f lst)
(cond
[(empty? lst) empty]
[else (cons (f (first lst))
(my-map f (rest lst)))]))
> (my-map sqrt(list 1 4 9 16))
> (my-map sqr(list 1 2 3))
'(1 4 9)
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.