Найти все слова, которые есть в первом предложении, и отсутствуют во втором - 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, которая принимает два аргумента типа string — a и b. Эта функция находит разность множеств слов в строке a и строке b (т.е. находит слова, которые есть в a, но нет в b). Сначала функция string-list принимает строку s и возвращает список слов из этой строки. Она использует read-from-string для разбиения строки на слова, а затем удаляет лишние символы с помощью функции delete-if-not. В данном случае лишшими символами являются все символы, которые не являются буквами или пробелами. Затем функция word-set-difference вызывает функцию string-list для обоих аргументов, а затем использует set-difference для нахождения разности множеств. Результатом работы функции word-set-difference является список слов, которые есть в первом аргументе, но нет во втором. В приведенном примере функция word-set-difference вызывается с аргументами aa b-b cc и cc dd. Функция string-list преобразует эти строки в списки слов: [aa, b-b, cc] и [cc, dd]. Затем set-difference находит разность множеств: [aa, b-b]. Результатом работы функции является список слов: [AA, B-B].

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


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

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

7   голосов , оценка 4.429 из 5

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

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

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