Наиболее часто встречаемое слово - Lisp

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

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

Для текстового файла определить самое часто встречающееся слово Помогите пожалуйста написать программу на Common Lisp

Решение задачи: «Наиболее часто встречаемое слово»

textual
Листинг программы
  1. (defun abundant-word (s)
  2.   (word-max (string-list s)))
  3.  
  4. (defun word-max (w
  5.                  &aux
  6.                  (v (remove-duplicates w))
  7.                  (m (loop for a in v maximize (count a w))))
  8.   (loop for a in v when (= (count a w) m) collect a))
  9.  
  10. (defun string-list (s)
  11.   (read-from-string
  12.    (concatenate
  13.     'string "(" (delete-if-not #'(lambda (x)
  14.                                    (or (alpha-char-p x)
  15.                                        (equal x #\space)
  16.                                        (equal x #\-)))
  17.                                s) ")")))
  18.  
  19. > (abundant-word "aaa aaa bbb bbb ccc")
  20. (AAA BBB)

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

В данном коде реализуется функция abundant-word, которая принимает строку s и возвращает наиболее часто встречающиеся слова.

  1. В первой функции string-list строка s преобразуется в список строк, где все символы, которые не являются буквами или пробелами, удаляются.
  2. Во второй функции word-max из списка слов v, полученного из строки s, удаляются дубликаты. Затем с помощью цикла loop и функции count подсчитывается количество каждого слова в списке. Слово с максимальным количеством повторений сохраняется в переменной m.
  3. В функции abundant-word создается пустой список v, который будет заполняться словами из строки s. Затем с помощью цикла loop и условия =, проверяется каждое слово из списка v. Если количество повторений слова в строке s равно m, то это слово добавляется в результат. В итоге функция возвращает список наиболее часто встречающихся слов. Таким образом, при вызове функции abundant-word с аргументом aaa aaa bbb bbb ccc, будет возвращен список (AAA BBB), так как слова AAA и BBB встречаются наиболее часто.

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


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

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

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

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

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

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