КАК РЕШИТЬ ЧЕРЕЗ ФУНКЦИОНАЛЫ? - Lisp
Формулировка задачи:
В типографии проверяют книги перед изданием. Вам необходимо написать программу, которая сделает заглавной первую букву первого слова каждого предложения, если та не является таковой.
("в типографии проверяют книги перед изданием" "наша кафедра готовит настоящих программистов" "вам необходимо написать программу" )
⇒
("В типографии проверяют книги перед изданием"
"Наша кафедра готовит настоящих программистов"
"Вам необходимо написать программу"
)
Решение задачи: «КАК РЕШИТЬ ЧЕРЕЗ ФУНКЦИОНАЛЫ?»
textual
Листинг программы
(defun task (lst) (mapcar (lambda (x) (strCat (strUcase (strLeft x 1)) (strMid x 2))) lst)) ==> TASK (task '("в типографии проверяют книги перед изданием" "наша кафедра готовит настоящих программистов" "вам необходимо написать программу" )) ==> ("В типографии проверяют книги перед изданием" "Наша кафедра готовит настоящих программистов" "Вам необходимо написать программу")
Объяснение кода листинга программы
В данном коде определена функция task
, которая принимает в качестве аргумента список строк lst
. Внутри функции происходит следующее:
mapcar
применяется к спискуlst
с лямбда-функцией в качестве аргумента. Лямбда-функция принимает в качестве аргументаx
(каждый элемент спискаlst
) и возвращает результат вызова функцийstrUcase
иstrMid
с аргументомx
.- Функция
strUcase
применяется к первой единицеx
(что соответствует первому символу строки), а затем результат вызова функцииstrMid
с аргументомx
(что соответствует оставшейся части строки после первой единицы). Результат этих двух операций объединяется с помощью функцииstrCat
. - Результатом выполнения лямбда-функции для каждого элемента списка
lst
является новый список, где первая единица каждого элемента преобразована в верхний регистр, а остальные символы — в нижний регистр. - Вызывается функция
task
с аргументомlst
. Результатом выполнения функции является новый список, где первая единица каждого элемента преобразована в верхний регистр, а остальные символы — в нижний регистр. - Результат функции
task
выводится на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д