我正在尝试为newLISP
我制作的这个程序编写使用说明,但它一直抱怨字符串太长。
ERR: string token too long : "$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&"
我花了十分钟诅咒newLISP
并提出偏执的理论,比如,也许你不应该在字符串中使用引号,或者当我使用原始字符串({}
)时它会起作用,直到我开始切断字符串。它达到了消息消失的地步,使帮助消息非常无用。结果newLISP
不喜欢超过2048(2^11)
字符的字符串。苏,
为什么要限制字符串文字中的字符数?
为什么是 2048 个字符?
将单元内存增加到128MB
(参见手册)不会改变任何事情。现在唯一可行的解决方案(一个骇人听闻的解决方案)是将帮助字符串分成两个字符串,每个字符串都位于2048
字符下,然后将它们与string
.
另一件奇怪的事情是,任何包含2048+
字符的字符串在 repl 中的打印方式都不同:
> (dup "&" 2048)
[text]&&&&&&&&&&&&&& .....
......
&&&&&&&&&&&&&&&[/text]
> (dup "&" 2040)
"&&&&&&&&&&&&&&&&&&& .....
.....
&&&&&&&&&&&&&&&"