Найти слова, которые есть в первом предложении, но отсутствуют во втором - Lisp

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

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

Найти все слова, которые есть в первом предложении и отсутствуют во втором.

Решение задачи: «Найти слова, которые есть в первом предложении, но отсутствуют во втором»

textual
Листинг программы
  1. (defun word-set-difference (a b)
  2.   (mapcar #'string (set-difference (string-list a)
  3.                                    (string-list b))))
  4.  
  5. (defun string-list (s)
  6.   (read-from-string
  7.    (concatenate
  8.     'string "(" (delete-if-not #'(lambda (x)
  9.                                    (or (alpha-char-p x)
  10.                                        (equal x #\space)
  11.                                        (equal x #\-)))
  12.                                s) ")")))
  13.  
  14. > (word-set-difference "aa b-b cc" "cc dd")
  15. ("AA" "B-B")

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

В данном коде реализован алгоритм нахождения множества слов, которые присутствуют в первом предложении, но отсутствуют во втором. В функции word-set-difference происходит следующее:

  1. Создается функция string, которая преобразует каждый элемент списка в строку.
  2. Применяется функция mapcar к списку слов первого предложения, преобразуя каждый элемент в строку.
  3. Вычисляется разница между множеством слов первого предложения и второго предложения с помощью функции set-difference.
  4. Результатом является список слов, которые присутствуют в первом предложении, но отсутствуют во втором. В функции string-list происходит следующее:
  5. Используется функция read-from-string, чтобы прочитать строку из символа, следующего за последним символом в строке.
  6. Формируется строка, содержащая все слова в предложении, разделенные пробелами.
  7. Используется функция delete-if-not, чтобы удалить все символы, которые не являются буквами или пробелами.
  8. Результатом является список слов. Таким образом, код принимает два предложения в качестве входных данных и возвращает список слов, которые присутствуют только в первом предложении. В приведенном примере результатом является список слов AA и B-B.

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


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

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

12   голосов , оценка 3.833 из 5

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

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

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