在Racket中小写整个字符串

use*_*651 4 string scheme lowercase racket

有没有办法将字符串中的所有字符转换为Racket中的小写字母?

我能想到的唯一方法是转换char-downcase但它不适用于字符串

我使用的是初学者语言,因此我无法使用某些功能

Ósc*_*pez 8

在实践中,您将使用以下string-downcase过程:

(string-downcase "ABCDE")
=> "abcde"
Run Code Online (Sandbox Code Playgroud)

但你与初学者的语言工作,所以这里是解决它的总体思路 - 我给你一些提示,这是更好,如果你尝试自行解决问题.首先,让我们分成两个部分的问题:该字符串转换成字符的列表中的一个程序,调用执行实际的转型,最终变成转换的列表回字符串一个辅助程序:

(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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

解决方案的关键部分是操作字符串字符的过程,单击链接并研究文档.