Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/scheme/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scheme 方案:编号到字符串,字符串到列表_Scheme_Racket - Fatal编程技术网

Scheme 方案:编号到字符串,字符串到列表

Scheme 方案:编号到字符串,字符串到列表,scheme,racket,Scheme,Racket,我想使用Scheme的number->string和string->list函数从输入的数字轻松创建一个数字列表 这将创建我想要的数字列表,但有一个问题:\将在每个数字之前: (define input 1234) (define (digit-list input) (string->list (number->string input)) ) 在输入上运行数字列表,将产生: (#\1 #\2 #\3 #\4 ) 如果每个数字前面没有\,如何生成此数字列表?前面

我想使用Scheme的
number->string
string->list
函数从输入的数字轻松创建一个数字列表

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

(define input 1234)

(define (digit-list input)
    (string->list (number->string input))
)
输入上运行
数字列表
,将产生:

(#\1  #\2  #\3  #\4 )
如果每个数字前面没有
\
,如何生成此数字列表?

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

(number? (string->number (string #\1)))
=> #t
您可以将这两个过程映射到列表中,如下所示:

(map (compose string->number string)
     (string->list (number->string 1234)))
=> '(1 2 3 4)
前面的
\
是字符的模式语法。您可以将每个字符转换为数字,方法是首先将其设置为
字符串,然后使用
字符串->数字

(number? (string->number (string #\1)))
=> #t
您可以将这两个过程映射到列表中,如下所示:

(map (compose string->number string)
     (string->list (number->string 1234)))
=> '(1 2 3 4)

太棒了,非常感谢!出于某种原因,在我的环境中没有定义compose函数,但使用您提供的链接,我可以找到它:(define(compose f g)(lambda(x)(f(g x))),它工作了!太棒了,非常感谢!出于某种原因,在我的环境中没有定义compose函数,但使用您提供的链接,我可以找到它:(define(compose f g)(lambda(x)(f(g x))),它工作了!