Вариант 2.37
Запрограммируйте рекурсивно на языке Коммон Лисп функционал map-set (f X), аргументами которого являются функция одного аргумента f и список X, рассматриваемый как множество. Результатом вызова должно быть множество из результатов применения f к каждому из элементов X. В списки, представляющие множества, нет повторений, а порядок элементов не имеет значения.
(load (compile-file "main.lisp"))
(print (map-set #'abs '(1 2 -3 -2)))
(1 3 2)
(print (map-set #'identity (list 20 20 30 30 40 40)))
(20 30 40)
(print (map-set #'abs (list )))
NIL
(print (map-set #'abs (list 1 -1 1 -1 1 -1)))
(1)
(print (map-set #'sqrt (list 4 9 16 25 25 16 9 4)))
(5 4 3 2)
(print (map-set (lambda (x) (* x x)) (list 1 -2 3 -4 5 -6 7)))
(1 4 9 16 25 36 49)