如何在 Lisp 中使用 format 而不在格式化数组时添加换行符/缩进?

问题描述 投票:0回答:1

这是我的问题:

  1. 我在长字符串数组上使用格式,并且显然默认情况下使用 ~s 指令时,它会添加换行符和两个缩进空格。
  2. 这对于人类读者来说确实很棒,但在这种情况下我不想添加任何这些东西。
  3. 任何人都可以提供一些关于我如何指导格式不这样做的指导吗?此外,我很想听听您最喜欢的格式指令文档链接:我很害怕。

其他背景:

  1. 在本例中,我的应用程序是通过 Hunchentoot 返回文本的系统的一部分,即我的代码是一个处理程序,用于格式化数组,然后通过 HTTP 将其提供给用户。格式在 Hunchentoot 文档和其他用户中使用,但请告诉我这是否是错误的方法。
  2. 这是一个演示:
(let ((value #("a800150c-fed9-4c2a-9de4-c34dbe5b9f83" "a99c023a-5d29-40cc-ad49-1745d3e2bfe4" "f65dff1f-3719-41f5-9735-6ef77c5816b8" "c463d1a3-f17b-4e8a-a246-a0cc1805c8cf")))
(format nil "~s" value)
)

产量:

"#(\"a800150c-fed9-4c2a-9de4-c34dbe5b9f83\" \"a99c023a-5d29-40cc-ad49-1745d3e2bfe4\"
  \"f65dff1f-3719-41f5-9735-6ef77c5816b8\" \"c463d1a3-f17b-4e8a-a246-a0cc1805c8cf\")"

注意换行符和两个缩进空格。

如果您有疑问,请告诉我!谢谢您的帮助!

lisp common-lisp
1个回答
0
投票

您需要通过将

*print-pretty*
设置为 false 来关闭漂亮打印机:

CL-USER> (let ((*print-pretty* nil)
               (value #("a800150c-fed9-4c2a-9de4-c34dbe5b9f83" "a99c023a-5d29-40cc-ad49-1745d3e2bfe4" "f65dff1f-3719-41f5-9735-6ef77c5816b8" "c463d1a3-f17b-4e8a-a246-a0cc1805c8cf")))
          (format nil "~a" value))
"#(a800150c-fed9-4c2a-9de4-c34dbe5b9f83 a99c023a-5d29-40cc-ad49-1745d3e2bfe4 f65dff1f-3719-41f5-9735-6ef77c5816b8 c463d1a3-f17b-4e8a-a246-a0cc1805c8cf)"
© www.soinside.com 2019 - 2024. All rights reserved.