请教这是为什么?DrScheme中的string-set!

发布于 2022-08-25 06:57:05 字数 415 浏览 17 评论 4

(define x "hello")
x
==>"hello"
(string-set! x 0 #p)
==>string-set!: expects type <mutable string> as 1st argument, given: "hello"; other arguments were: 0 #p ;;;;;;;;;;;;结果错误???

(define x (string #h#e#l#l#o))
x
==>"hello"
(string-set! x 0 #p)
x
==>"pello"  ;;;;;;;;结果正确

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

烈酒灼喉 2022-08-27 20:23:17

原帖由 pass12163com 于 2009-7-11 23:10 发表
多谢。
查了一下r5rs,好像没有上面的表述。是什么书里的?

可变串应该不是标准scheme类型。
<scheme程序设计语言>也没有提到。
sicp里除了error用到串, 很少提及串这东西。 和Unix里到处都是字符串的情况真是巨大的差别。
把以前的东西暂时都忘了,才能学到scheme里遍地的“新”东西。

暖树树初阳… 2022-08-27 16:49:11

DrScheme 自带的 help 文档。网上也有:

http://docs.plt-scheme.org/reference/strings.html

只读是 drscheme 的个性吧,我用 guile 试,"hello" 也是可改写的。

在巴黎塔顶看东京樱花 2022-08-27 15:02:01

多谢。
查了一下r5rs,好像没有上面的表述。是什么书里的?

时光与爱终年不遇 2022-08-26 13:19:08

3.3 strings

......

A string can be mutable or immutable. When an immutable string is provided to a procedure like string-set!, the exn:fail:contract exception is raised. String constants generated by the default reader (see Reading Strings) are immutable.

12.6.6 Reading Strings

When the reader encounters ", it begins parsing characters to form a string. The string continues until it is terminated by another "

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文