Функция, удаляющая из числового списка все совпадающие с заданным числом элементы - Lisp

Узнай цену своей работы

Формулировка задачи:

Привет, помогите пожалуйста с задачей Построить функцию, которая удаляет из числового списка все совпадающие с заданным числовым атомом элементы и возвращает в качестве значения список из квадратов оставшихся элементов

Решение задачи: «Функция, удаляющая из числового списка все совпадающие с заданным числом элементы»

textual
Листинг программы
(defun task (lst n)
  (mapcar (lambda (y) (* y y)) (remove-if (lambda (x) (= x n)) lst)))
 
==> TASK
 
(task '(1 2 3 4 5 6 1 2 3 4 5 6) 3)
 
==> (1 4 16 25 36 1 4 16 25 36)

Объяснение кода листинга программы

В коде определена функция с именем task. Она принимает два аргумента: lst — числовой список, и n — число. Функция использует следующие функции и операции:

  1. mapcar — применяет функцию к каждому элементу списка.
  2. lambda — определяет анонимную функцию.
  3. remove-if — удаляет из списка все элементы, для которых выполняется условие.
  4. = — сравнение на равенство.
    • — умножение.
  5. y — переменная, которая будет использоваться в лямбда-функции.
  6. x — переменная, которая будет использоваться в лямбда-функции.
  7. n — переменная, которая будет использоваться в лямбда-функции. В лямбда-функции используется оператор (* y y), который будет умножать каждый элемент списка на себя. Вызывается функция task с аргументами: lst — '(1 2 3 4 5 6 1 2 3 4 5 6), n — 3. Код выполняет следующие действия:
  8. Создаётся лямбда-функция, которая будет применяться к каждому элементу списка.
  9. Из списка удаляются все элементы, равные n.
  10. К оставшимся элементам применяется лямбда-функция, которая умножает каждый элемент на себя.
  11. Результат выводится на экран.

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


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

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

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