Определить слова, совпадающие с последним словом строки - Lisp

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

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

Есть строка. Определить слова,которые совпадают с последним словом. Проблема в том, что не знаю как найти в строке слово.

Решение задачи: «Определить слова, совпадающие с последним словом строки»

textual
Листинг программы
  1. (defun task (txt)
  2.   (let* ((ws (strWords txt))
  3.          (lw (car (last ws))))  
  4.     (iter (for a in (butlast ws))
  5.           (for i upfrom 1)
  6.           (when (eq a lw) (printsline (strCat "Слово " lw " найдено на " (fix2str i) "-м месте"))))))
  7.  
  8.  
  9. ==> TASK
  10. (task "To be or not to be")
  11. Слово be найдено на 2 месте
  12.  
  13. ==> NIL

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

В данном коде определена функция task, которая принимает в качестве аргумента строку txt. Внутри функции создается список слов из данной строки с помощью функции strWords, и сохраняется в переменную ws. Затем из списка ws извлекается последнее слово, сохраняется в переменную lw. Далее, с помощью цикла iter происходит итерация по списку ws, начиная с первого слова (так как используется for i upfrom 1). При каждом проходе цикла проверяется равенство текущего слова a последнему слову lw с помощью функции eq. Если равенство найдено, то с помощью функции printsline выводится сообщение вида Слово be найдено на 2-м месте. В конце функции возвращается nil. Примеры использования функции:

  1. (task To be or not to be) Слово be найдено на 2-м месте
  2. (task Lorem Ipsum is simply dummy text of the printing and typesetting industry.) Слово Ipsum найдено на 5-м месте

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


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

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

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

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

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

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