;; Функция для проверки, начинается ли слово с заглавной буквы. (defun starts-with-uppercase (word) (cond ((not (stringp word)) nil) ; Обработка не строкового аргумента ((zerop (length word)) nil) ; Обработка пустой строки (t (upper-case-p (char word 0))))) ; Проверка первого символа ;; Преобразует слово в верхний регистр, если оно начинается с заглавной буквы; ;; иначе возвращает исходное слово. (defun uppercase-if-uppercase (word) (if (starts-with-uppercase word) (string-upcase word) word)) ;; Обрабатывает одно предложение (список слов). Применяет uppercase-if-uppercase к каждому слову. (defun process-sentence (sentence) (mapcar #'uppercase-if-uppercase sentence)) ;; Обрабатывает весь текст (список предложений). Применяет process-sentence к каждому предложению. (defun process-text (text) (mapcar #'process-sentence text)) ;; Примеры использования (let ((text '(("this" "is" "A" "sample" "text") ("Some" "words" "are" "Capitalized" "text")))) (format t "Исходный текст:~%~A~%" text) (format t "Обработанный текст:~%~A~%" (process-text text)) (format t "~%Дополнительные примеры:~%") (format t "Предложение: ~A, Обработано: ~A~%" '("hello" "World") (process-sentence '("hello" "World"))) (format t "Предложение: ~A, Обработано: ~A~%" '("Hello" "World") (process-sentence '("Hello" "World"))) (format t "Текст: ~A, Обработано: ~A~%" '(("Hello" "world")) (process-text '(("Hello" "world")))) (format t "Текст: ~A, Обработано: ~A~%" '(("hello" "World")) (process-text '(("hello" "World")))) (format t "Текст (с числами): ~A, Обработано: ~A~%" '(("Hello" "123World")) (process-text '(("Hello" "123World")))) (format t "Текст (пустое предложение): ~A, Обработано: ~A~%" '(("")) (process-text '(("")))) )
Standard input is empty
Исходный текст: ((this is A sample text) (Some words are Capitalized text)) Обработанный текст: ((this is A sample text) (SOME words are CAPITALIZED text)) Дополнительные примеры: Предложение: (hello World), Обработано: (hello WORLD) Предложение: (Hello World), Обработано: (HELLO WORLD) Текст: ((Hello world)), Обработано: ((HELLO world)) Текст: ((hello World)), Обработано: ((hello WORLD)) Текст (с числами): ((Hello 123World)), Обработано: ((HELLO 123World)) Текст (пустое предложение): (()), Обработано: (())
Warning: reserving address range 0x80000c0000...0x1fffffffffff that contains memory mappings. clisp might crash later! Memory dump: 0x8000000000 - 0x80000bffff 0x152c1a800000 - 0x152c1aae4fff 0x152c1ac00000 - 0x152c1ac02fff 0x152c1ac03000 - 0x152c1ae01fff 0x152c1ae02000 - 0x152c1ae02fff 0x152c1ae03000 - 0x152c1ae03fff 0x152c1ae15000 - 0x152c1ae39fff 0x152c1ae3a000 - 0x152c1afacfff 0x152c1afad000 - 0x152c1aff5fff 0x152c1aff6000 - 0x152c1aff8fff 0x152c1aff9000 - 0x152c1affbfff 0x152c1affc000 - 0x152c1affffff 0x152c1b000000 - 0x152c1b003fff 0x152c1b004000 - 0x152c1b203fff 0x152c1b204000 - 0x152c1b204fff 0x152c1b205000 - 0x152c1b205fff 0x152c1b238000 - 0x152c1b239fff 0x152c1b23a000 - 0x152c1b249fff 0x152c1b24a000 - 0x152c1b27dfff 0x152c1b27e000 - 0x152c1b3b4fff 0x152c1b3b5000 - 0x152c1b3b5fff 0x152c1b3b6000 - 0x152c1b3b8fff 0x152c1b3b9000 - 0x152c1b3b9fff 0x152c1b3ba000 - 0x152c1b3bbfff 0x152c1b3bc000 - 0x152c1b3bcfff 0x152c1b3bd000 - 0x152c1b3befff 0x152c1b3bf000 - 0x152c1b3bffff 0x152c1b3c0000 - 0x152c1b3c0fff 0x152c1b3c1000 - 0x152c1b3c1fff 0x152c1b3c2000 - 0x152c1b3cffff 0x152c1b3d0000 - 0x152c1b3ddfff 0x152c1b3de000 - 0x152c1b3eafff 0x152c1b3eb000 - 0x152c1b3eefff 0x152c1b3ef000 - 0x152c1b3effff 0x152c1b3f0000 - 0x152c1b3f0fff 0x152c1b3f1000 - 0x152c1b3f6fff 0x152c1b3f7000 - 0x152c1b3f8fff 0x152c1b3f9000 - 0x152c1b3f9fff 0x152c1b3fa000 - 0x152c1b3fafff 0x152c1b3fb000 - 0x152c1b3fbfff 0x152c1b3fc000 - 0x152c1b429fff 0x152c1b42a000 - 0x152c1b438fff 0x152c1b439000 - 0x152c1b4defff 0x152c1b4df000 - 0x152c1b575fff 0x152c1b576000 - 0x152c1b576fff 0x152c1b577000 - 0x152c1b577fff 0x152c1b578000 - 0x152c1b58bfff 0x152c1b58c000 - 0x152c1b5b3fff 0x152c1b5b4000 - 0x152c1b5bdfff 0x152c1b5be000 - 0x152c1b5bffff 0x152c1b5c0000 - 0x152c1b5c5fff 0x152c1b5c6000 - 0x152c1b5c8fff 0x152c1b5cb000 - 0x152c1b5cbfff 0x152c1b5cc000 - 0x152c1b5ccfff 0x152c1b5cd000 - 0x152c1b5cdfff 0x152c1b5ce000 - 0x152c1b5cefff 0x152c1b5cf000 - 0x152c1b5cffff 0x152c1b5d0000 - 0x152c1b5d6fff 0x152c1b5d7000 - 0x152c1b5d9fff 0x152c1b5da000 - 0x152c1b5dafff 0x152c1b5db000 - 0x152c1b5fbfff 0x152c1b5fc000 - 0x152c1b603fff 0x152c1b604000 - 0x152c1b604fff 0x152c1b605000 - 0x152c1b605fff 0x152c1b606000 - 0x152c1b606fff 0x562ca8827000 - 0x562ca8917fff 0x562ca8918000 - 0x562ca8a21fff 0x562ca8a22000 - 0x562ca8a81fff 0x562ca8a83000 - 0x562ca8ab1fff 0x562ca8ab2000 - 0x562ca8ae2fff 0x562ca8ae3000 - 0x562ca8ae6fff 0x562ca9416000 - 0x562ca9436fff 0x7ffef1733000 - 0x7ffef1753fff 0x7ffef17c5000 - 0x7ffef17c8fff 0x7ffef17c9000 - 0x7ffef17cafff