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