На практике вам «d использовать string-downcase
процедуры для этого:
(string-downcase "ABCDE")
=> "abcde"
Но вы работаете с языком начинающим, так вот общей идеей для ее решения - я дам вам несколько советов, что лучше, если вы пытаетесь решить проблема самостоятельно. Во-первых, давайте разделить задачу на две части: одна процедура, которая преобразует строку в список символов, вызывает процедуру помощника, который выполняет фактическое преобразование и, наконец, превращает преобразованный список обратно в строку:
(define (lowercase str)
(<???> ; convert the list of chars into a string
(convert ; call the helper procedure
(<???> str)))) ; convert the string into a list of chars
convert
процедура является помощник, который делает тяжелую и преобразует в нижний регистр каждого символа в списке символов:
(define (convert strlst)
(if <???> ; if the list of chars is empty
<???> ; return the empty list
(cons ; else `cons`
(<???> <???>) ; convert to lowercase the first char in list
(convert <???>)))) ; advance recursion over list
основные части решения являются процедуры для манипулирования strings и characters, нажмите на ссылки и изучите документацию.
Спасибо Alastair Питтс! – user2113651
Из [документации] (http://docs.racket-lang.org/reference/strings.html?q=string#%28tech._string%29): 'Строка представляет собой массив с фиксированной длиной characters.' Так что ваша настоящая проблема заключается в том, как работать с массивами. –