首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Lisp代码中长多字符串常量(或vars)的惯用方法

Lisp代码中长多字符串常量(或vars)的惯用方法
EN

Stack Overflow用户
提问于 2014-10-09 03:24:45
回答 3查看 206关注 0票数 3

在通用Lisp代码中插入长的多字符串变量或常量的惯用方式是什么?在unix或其他语言中是否存在类似HEREDOC的东西来消除字符串文本中的缩进空格?

例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(defconstant +help-message+ 
             "Blah blah blah blah blah
              blah blah blah blah blah
              some more more text here")
; ^^^^^^^^^^^ this spaces will appear - not good

这样写起来有点丑:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(defconstant +help-message+ 
             "Blah blah blah blah blah
blah blah blah blah blah
some more more text here")

我们该怎么写。如果有任何方法,当你不需要转义引号,它会更好。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-10-09 05:22:29

我不懂习语,但format可以帮你做到这一点。(自然。format可以做任何事情。)

见Hyperspec第22.3.9.3节,Tilde换线。未修饰时,它移除换行符和随后的空格。如果要保留换行符,请使用@修饰符:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(defconstant +help-message+
   (format nil "Blah blah blah blah blah~@
                blah blah blah blah blah~@
                some more more text here"))

CL-USER> +help-message+
"Blah blah blah blah blah
blah blah blah blah blah
some more more text here"
票数 4
EN

Stack Overflow用户

发布于 2014-10-09 04:06:25

没有这回事。

压痕通常是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(defconstant +help-message+ 
  "Blah blah blah blah blah
blah blah blah blah blah
some more more text here")

也许使用读取器宏,或者使用读写器。素描:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(defun remove-3-chars (string)
  (with-output-to-string (o)
    (with-input-from-string (s string)
      (write-line (read-line s nil nil) o)
      (loop for line = (read-line s nil nil)
            while line
            do (write-line (subseq line 3) o)))))

(defconstant +help-message+
  #.(remove-3-chars
  "Blah blah blah blah blah
   blah blah blah blah blah
   some more more text here"))

CL-USER 18 > +help-message+
"Blah blah blah blah blah
blah blah blah blah blah
some more more text here
"

需要更多的抛光..。你可以使用‘串-修剪’或类似的。

票数 2
EN

Stack Overflow用户

发布于 2014-10-09 18:45:25

我有时会用这个表格:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(concatenate 'string "Blah blah blah"
                     "Blah blah blah"
                     "Blah blah blah"
                     "Blah blah blah")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26277184

复制
相关文章
vbs代码未结束的字符串常量[通俗易懂]
问题描述:   执行 vbs 脚本时提示“vbs代码未结束的字符串常量” 原因:   vba的BUG,在连接字符串的最后一个字符是单个或多个“行”字(我这里是把“行”字删除就不报错)或者其他原因,会出现未结束的字符串常量
全栈程序员站长
2022/07/25
1K0
vbs代码未结束的字符串常量[通俗易懂]
Lisp的本质(The Nature of Lisp)学习思考
Lisp的本质(The Nature of Lisp)学习思考 作者 Slava Akhmechet 译者 Alec Jang 出处: http://www.defmacro.org/ramblings/lisp.html 简介 最初在web的某些角落偶然看到有人赞美Lisp时, 我那时已经是一个颇有经验的程序员。在我的履历上, 掌握的语言范围相当广泛, 象C++, Java, C#主流语言等等都不在话下, 我觉得我差不多知道所有的有关编程语言的事情。对待编程语言的问题上, 我觉得自己不太会遇到什么大问题
Florian
2018/02/05
1.8K0
字符串常量池_字符串常量池溢出
我们知道字符串的分配和其他对象分配一样,是需要消耗高昂的时间和空间的,而且字符串我们使用的非常多。JVM为了提高性能和减少内存的开销,在实例化字符串的时候进行了一些优化:使用字符串常量池。
全栈程序员站长
2022/09/19
6320
字符串常量池_字符串常量池溢出
jvm常量池和字符串常量池_常量池中的字符串是对象吗
在Java开发中不管是前后端交互的JSON串,还是数据库中的数据存储,我们常常需要使用到String类型的字符串。作为最常用也是最基础的引用数据类型,JVM为String提供了字符串常量池来提高性能,本篇文章我们一起从底层JVM中认识并学习字符串常量池的概念和设计原理。
全栈程序员站长
2022/09/19
5310
jvm常量池和字符串常量池_常量池中的字符串是对象吗
js中长用的一些方法
1 点击空白区域关闭树 $(document).mouseup(function(e){ var _con = $(".input-text"); // 设置目标区域 if(!_con.is(e.target) && _con.has(e.target).length === 0){ // Mark 1 $("#treeIder_c1").hide(); $("#treeIder").hide(); } }); 2 给页码输入框绑定enter键 对于从后
用户5927264
2019/07/31
4510
字符型常量和字符串常量的区别?
1. 形式上: 字符常量是单引号引起的一个字符;字符串常量是双引号引起的 0 个或若干个字符。
黑洞代码
2021/01/14
2.9K0
字符型常量和字符串常量的区别?
运行时常量池与字符串常量池_字符串常量池在堆中还是方法区
常量池(Constant Pool),也叫 class 常量池(Class Constant Pool)。
全栈程序员站长
2022/09/19
9940
运行时常量池与字符串常量池_字符串常量池在堆中还是方法区
常量池和堆的区别_字符串常量池在堆中还是方法区
目录: 1.常量池与Class常量池 2.运行时常量池 运行时常量池的简介 方法区的Class文件信息,Class常量池和运行时常量池的三者关系 3.字符串常量池 字符串常量池的简介 采用字面值的方式创建字符串对象 采用new关键字新建一个字符串对象 字符串池的优缺点 4.字符串常量池和运行时常量池之间的藕断丝连 常量池和字符串常量池的版本变化 String.intern在JDK6和JDK7之后的区别(重难点) 字符串常量池里存放的是引用还是字面量
全栈程序员站长
2022/09/19
1.2K0
常量池和堆的区别_字符串常量池在堆中还是方法区
常量字符串的问题
常量字符串与存放在栈中的字符串是C语言面试中经常出现的问题,这可以考察面试者对于C语言数据存储的理解。 我们通过几个例题来看看常量字符串与存放在栈中的字符串
用户4766018
2022/08/19
5420
Java字符串常量池_字符串常量池溢出
Java 常量池详解(二)class文件常量池 和 Java 常量池详解(三)class运行时常量池
全栈程序员站长
2022/09/19
1.1K0
Java字符串常量池_字符串常量池溢出
走进 racket(lisp) 的世界
上周追着看了个大牛的好几篇文章,发现一个叫racket的语言出镜率颇高 —— 这已经是我十月来第三次从各种大牛的文章中接触这个词。就如「惊天魔盗团」里那个被催眠的法国人,当生活中多次出现和赌博相关的场景,Las Vegas自然而然成为他的下一个旅游目的地。而racket,在上个周末,便成了我的Las Vegas。 我对编程语言的接触大致分成三种「境界」: ✓ 浅尝辄止:了解一下语言设计的理念,基本功能,使用场景,写写一些基本的程序。如ruby,io,scala,clojure,object c,lua,ha
tyrchen
2018/03/28
2.5K0
走进 racket(lisp) 的世界
Java字符型常量和字符串常量的区别?
形式上: 字符常量是单引号引起的一个字符; 字符串常量是双引号引起的若干个字符 含义上: 字符常量相当于一个整型值( ASCII 值),可以参加表达式运算; 字符串常量代表一个地址(该字符串在内存中存
赵哥窟
2019/12/26
1.8K0
Java字符型常量和字符串常量的区别?
字符串常量池 运行时常量池_常量池中的字符串是对象吗
关于String以及StringBuffer、StringBuilder的相关信息可以参考博主的另一篇文章:
全栈程序员站长
2022/09/18
2710
字符串常量池 运行时常量池_常量池中的字符串是对象吗
jvm字符串常量池_java 常量池
字符串对象:比如new String(“abc”),或者直接String s=”str”,后面的”str”也是一个字符串对象。
全栈程序员站长
2022/09/19
5310
jvm字符串常量池_java 常量池
字符串常量池
“三妹,今天我们来学习一下字符串常量池吧,这是字符串非常中关键的一个知识点。”我话音未落,青岛路小学那边传来了嘹亮的歌声就钻进了我的耳朵,“唱 ~ 山 ~ 歌 ~”
沉默王二
2021/06/16
5110
字符串常量池
什么是字符串常量池_常量池中的字符串是对象吗
JDK1.8-1.9,String底层从char数组变成了byte数组,原因是部分字符仅占一个byte,而堆中含有大量的String字符串,该优化能节省较多空间。
全栈程序员站长
2022/09/19
4810
什么是字符串常量池_常量池中的字符串是对象吗
Java中的常量池【Class常量池、运行时常量池、字符串常量池】
⚠️全局字符串池里的内容是在类加载完成,经过验证、准备阶段之后在堆中生成字符串对象实例,然后将该字符串对象实例的引用值存到中;中存的是引用值而不是具体的实例对象,具体的实例对象是在堆中开辟的一块空间存放的。
高大北
2022/06/14
1.7K0
Java中的常量池【Class常量池、运行时常量池、字符串常量池】
Emacs Lisp
前言Lisp 是一门很古老的语言LISP 是具有悠久历史的计算机编程语言家族,有独特和完全括号的前缀符号表示法,起源于1958年,是现今第二悠久而仍广泛使用的高级编程语言,只有 FORTRAN 编程语言比它更早一年,LISP 编程语族已经演变出许多种方言,现代最著名的通用编程语种是 Common Lisp 和 Scheme , 以上解释来自 WIKIEmacs Lisp 是 Lisp 的一个分支Emacs Lisp,一种直译式的脚本语言,为LISP的方言之一,GNU Emacs与XEmacs文字编辑器都使用
franket
2022/07/10
6210
Emacs Lisp
然后为了印证我的所学,我自己写了一个小函数,用于这篇文章中输入两个由 ~~~ 来标识的代码块
franket
2021/08/10
2.3K0
[云计算架构:Dynamics ] 多租户 或多实例 ?
Dynamics 365(在线)为您提供了隔离Dynamics 365数据和用户访问权限的选项。 对于大多数公司而言,在订阅中添加和使用多个实例可提供正确的功能组合和易管理性。 具有不同地理位置的企业可能会考虑使用多个租户来分离Dynamics 365(在线)许可证。 多个实例可以在实例之间共享用户; 多个租户不能。
架构师研究会
2018/09/21
3.2K0
[云计算架构:Dynamics ] 多租户 或多实例 ?

相似问题

定义常量函数的惯用方法

11

java中长对象到长原语安全转换的惯用方法

30

C18:代码中长型常量和浮点型常量的表示

13

在通用Lisp中定义多个后端的惯用方法?

411

创建排序随机数列表的惯用Lisp方法?

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文