我希望使用Scheme的number->string
和string->list
函数轻松创建输入数字的数字列表。
这将代码创建我想要的数字列表,但有一个问题:#\
将位于每个数字之前:
(define input 1234)
(define (digit-list input)
(string->list (number->string input))
)
在digit-list
上运行input
会产生:
(#\1 #\2 #\3 #\4 )
如何在每个数字前面没有#\
的情况下生成此数字列表?
答案 0 :(得分:2)
前面的#\
是字符的方案语法。您可以先将每个字符转换为数字string
,然后使用string->number
:
(number? (string->number (string #\1)))
=> #t
您可以compose
这两个程序,并map
将它们列入您的列表,如下所示:
(map (compose string->number string)
(string->list (number->string 1234)))
=> '(1 2 3 4)