Построение итерационных программ для обработки списков - Lisp

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

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

Помогите, пожалуйста, написать 2 программы с использованием цикла loop) Заранее огромное спасибо)) 1) Два множества представлены списками. Найти объединение множеств. 2) Написать функцию, удаляющую из списка каждый K-й элемент.

Решение задачи: «Построение итерационных программ для обработки списков»

textual
Листинг программы
  1. (defun F (L1 L2)
  2.     (setq newL '())
  3.     (loop for x in L1 do    ; цикл по элементам 1 списка
  4.         (if (not (member x newL))
  5.             (setq newL (append newL (list x)))
  6.         )
  7.     )
  8.     (loop for y in L2 do    ; цикл по элементам 2 списка
  9.         (if (not (member y newL))
  10.             (setq newL (append newL (list y)))
  11.         )
  12.     )
  13.    
  14.     (prin1 newL)
  15. )
  16.  
  17.  
  18.  
  19. (F '(R A B C D)  '(B C K D)) ---> (R A B C D K)

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

В этом коде определена функция F, которая принимает два аргумента — списки L1 и L2. Сначала объявлена пустая переменная newL. Затем используется цикл loop для перебора элементов первого списка L1. Для каждого элемента x проверяется, есть ли он уже в newL с помощью функции member. Если элемента нет в newL, то он добавляется в конец списка newL с помощью функции append. После этого используется второй цикл loop для перебора элементов второго списка L2. Аналогично первому циклу проверяется, есть ли элемент в newL и, если его нет, он добавляется в конец списка. В конце функция prin1 используется для вывода списка newL. Используя функцию F и передавая ей списки '(R A B C D) и '(B C K D), мы получаем результат (R A B C D K).

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


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

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

15   голосов , оценка 4.067 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы