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
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д