You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 06:50:24