Lisp Прога удаляет первую букву каждого слова из предложения.

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

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

Создать прогу, которая удаляет первую букву каждого слова из предложения.

Решение задачи: «Lisp Прога удаляет первую букву каждого слова из предложения.»

textual
Листинг программы
;; racket-lang.org
(let ((foo (lambda (s)
             (map string->list (string-split s))))
      (bar (lambda (l)
             (map list->string (map cdr l))))
      (baz (lambda (s)
             (string-join (remove* '("") s) " ")))
      (str "this is a string"))
  (baz (bar (foo str))))
;"his s tring"

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

В данном коде на языке Lisp создаются три анонимные функции (lambda-функции) для работы со строками.

  1. Функция foo принимает строку s и возвращает список слов, полученных после разделения строки по пробелам. Для этого используется функция string-split, которая разбивает строку на список строк, и функция map, которая применяет к каждому элементу списка функцию string->list, превращая строку в список символов.
  2. Функция bar принимает список слов l и возвращает список строк, полученных после удаления первого символа каждого слова. Для этого используется функция map, которая применяет к каждому элементу списка функцию list->string, превращая список в строку, и функция remove*, которая удаляет указанный символ (в данном случае первый символ каждого слова) из строки.
  3. Функция baz принимает строку s и возвращает строку, полученную после объединения всех слов строки в одну строку с добавлением пробела между словами. Для этого используется функция string-join, которая объединяет все элементы списка в одну строку с заданным разделителем (в данном случае пробелом). В конце кода создается строка this is a string, которая передается в функцию baz, которая в свою очередь вызывает функцию bar, которая вызывает функцию foo. Результатом работы программы будет строка his s tring.

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


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

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

13   голосов , оценка 3.846 из 5
Похожие ответы