如何在 DrRacket 中将列表转换为字符串?例如,如何将'(红黄蓝绿)转换为“红黄蓝绿”?我尝试使用 list->string 但这似乎只适用于字符。
这里的技巧是映射列表symbols作为输入接收,依次将每个数字转换为字符串,并在除最后一个数字之外的每个数字之间添加空格。像这样的东西:
(define (slist->string slst)
(cond ((empty? slst) "")
((empty? (rest slst)) (symbol->string (first slst)))
(else (string-append (symbol->string (first slst))
" "
(slist->string (rest slst))))))
或者更简单,使用高阶过程:
(define (slist->string slst)
(string-join (map symbol->string slst) " "))
无论哪种方式,它都会按预期工作:
(slist->string '(red yellow blue green))
=> "red yellow blue green"
为了彻底,如果输入列表是一个列表strings(不是问题中的符号),答案是:
(define strlist (list "red" "yellow" "blue" "green"))
(string-join strlist " ")
=> "red yellow blue green"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)