如何将字符串转换为方案中的整数列表?

Jua*_*eno 2 scheme racket

如何将数字字符串转换为整数列表?我希望将“1234”转换为列表 1 2 3 4

Syl*_*ter 5

您可以使用 将字符串转换为字符列表string->list。例如。

(string->list "1234") ; ==> (#\1 #\2 #\3 #\4)
Run Code Online (Sandbox Code Playgroud)

您可以使用 将 char 转换为其 ascii 值char->integer。例如。

(char->integer #\1) ; ==> 49
Run Code Online (Sandbox Code Playgroud)

#\0...的 Ascii 值#\9按升序排列,因此您可以减去以获得数字值:

(- (char->integer #\1) 48) ; ==> 1 
Run Code Online (Sandbox Code Playgroud)

创建一个程序,将这些结合起来map,就可以开始了。

(define (number-string->number-list str)
  (map (lambda (ch) 
         <??>)
       (string->list str)))

(number-string->number-list "1234") ; ==> (1 2 3 4)
Run Code Online (Sandbox Code Playgroud)