Scheme(Racket)技术问询:如何返回不带引号的字符串列表?
解决方法
在Lisp类语言中,默认打印字符串时会带双引号,要输出不带引号的stringA stringB,可以通过以下方式实现:
逐个打印字符串(以Common Lisp为例):
使用princ函数直接输出字符串(不会添加引号),再手动添加空格分隔:(dolist (str (list "stringA" "stringB")) (princ str) (princ " "))执行后会输出:
stringA stringB(若需避免末尾多余空格,可调整逻辑判断最后一个元素)用格式化输出拼接字符串:
使用format函数的循环格式符,自动处理元素分隔:(format t "~{~a~^ ~}" (list "stringA" "stringB"))其中
~a用于输出不带引号的字符串,~^表示仅在元素之间添加空格,不会在末尾多余添加。
核心原因是:Lisp中字符串的打印表示默认带双引号,但princ、format的~a格式会输出字符串的实际内容而非打印表示。
内容的提问来源于stack exchange,提问作者Tacobell
相关产品推荐
相关产品推荐

