我想使用 Schemenumber->string和string->list函数轻松地从输入数字创建数字列表。
这将代码创建我想要的数字列表,但有一个问题:#\将在每个数字之前:
(define input 1234)
(define (digit-list input)
(string->list (number->string input))
)
Run Code Online (Sandbox Code Playgroud)
运行收益digit-list率input:
(#\1 #\2 #\3 #\4 )
Run Code Online (Sandbox Code Playgroud)
如何生成这个数字列表而不需要#\前面的每个数字?
前面#\是字符的方案语法。您可以将每个字符转换为数字,首先将其设为 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)