答案 0 :(得分:8)
实际上,您可以使用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的过程,点击链接并研究文档。