Из двух списков чисел извлечь общие числа, большие данного и поместить их в третий список - 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 являются списками чисел. Внутри функции происходит следующее:

  1. С помощью функции remove-if-not и лямбда-функции (#'(lambda (a) (> a n))) из первого аргумента w удаляются все элементы, которые меньше третьего аргумента n.
  2. С помощью функции intersection из первого аргумента w и второго аргумента v извлекаются общие элементы и записываются в новый список.
  3. Результат работы функции 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).

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.933 из 5
Похожие ответы