方案:数字到字符串,字符串到列表

hax*_*tar 6 scheme racket

我想使用 Schemenumber->stringstring->list函数轻松地从输入数字创建数字列表。

这将代码创建我想要的数字列表,但有一个问题:#\将在每个数字之前:

(define input 1234)

(define (digit-list input)
    (string->list (number->string input))
)
Run Code Online (Sandbox Code Playgroud)

运行收益digit-listinput

(#\1  #\2  #\3  #\4 )
Run Code Online (Sandbox Code Playgroud)

如何生成这个数字列表而不需要#\前面的每个数字?

ass*_*aru 8

前面#\是字符的方案语法。您可以将每个字符转换为数字,首先将其设为 a string,然后使用string->number

(number? (string->number (string #\1)))
=> #t
Run Code Online (Sandbox Code Playgroud)

您可以compose将这两个过程,并将map它们添加到您的列表中,如下所示:

(map (compose string->number string)
     (string->list (number->string 1234)))
=> '(1 2 3 4)
Run Code Online (Sandbox Code Playgroud)