Написать функцию, которая по заданному отношению возвращает область определения. Написать функцию, которая по заданному отношению возвращает область значений.
Определения:
Прямым декартовым произведением множеств A1,...,An называется множество A1 x ... x An = {<a1,...,an> | a1


Бинарным отношением между элементами множеств A и B называется любое подмножество R множества A x B. Если A = B, то отношение R называется бинарным отношением на A. Вместо
<x,y>

Областью определения бинарного отношения R называется множество

Областью значений бинарного отношения R называется множество

Задача сводится к анализу структры представления отношений.
Представление отношений сводится представлению декартового произведения, которое было оговорено в задаче 4.
(defun не-могу-придумать-название (set &optional (result nil))
(cond ((null set) result)
((in-predicate (caar set) result)
(не-могу-придумать-название (cdr set) result))
(t (не-могу-придумать-название (cdr set) (cons (caar set) result)))
)
)
Тестирование:
> (не-могу-придумать-название (cartesian-product '(a b c) '(1 2 3)))
(C B A)
Вторая функция пишется по аналогии.