Из двух списков чисел извлечь общие числа, большие данного и поместить их в третий список - Lisp
Формулировка задачи:
Из двух списков чисел извлечь общие числа, большие данного и поместить их в третий список
Помогите решить до завтра.
Решение задачи: «Из двух списков чисел извлечь общие числа, большие данного и поместить их в третий список»
textual
Листинг программы
(defun inter> (n w v) (remove-if-not #'(lambda (a) (> a n)) (intersection w v))) > (inter> 3 '(1 2 3 4 5 6) '(2 3 4 5 6 7)) (4 5 6)
Объяснение кода листинга программы
В коде определена функция с именем inter> из языка программирования Lisp. Функция принимает три аргумента: n, w и v. Аргумент n является числом, аргументы w и v являются списками чисел. Внутри функции происходит следующее:
- С помощью функции remove-if-not и лямбда-функции (#'(lambda (a) (> a n))) из первого аргумента w удаляются все элементы, которые меньше третьего аргумента n.
- С помощью функции intersection из первого аргумента w и второго аргумента v извлекаются общие элементы и записываются в новый список.
- Результат работы функции intersection возвращается в качестве результата работы функции inter>. Например, при вызове функции (inter> 3 '(1 2 3 4 5 6) '(2 3 4 5 6 7)) первым аргументом является число 3, вторым аргументом — список '(1 2 3 4 5 6), третьим аргументом — список '(2 3 4 5 6 7). Внутри функции сначала с помощью лямбда-функции удаляются все элементы из второго аргумента, которые меньше третьего аргумента: '(2 3 4 5 6) -> '(4 5 6). Затем с помощью функции intersection из первого и второго аргументов извлекаются общие элементы: '(4 5 6) -> (4 5 6). Таким образом, результатом работы функции (inter> 3 '(1 2 3 4 5 6) '(2 3 4 5 6 7)) будет список (4 5 6).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д