相当于Scheme中的defsetf

发布于 2024-07-30 17:16:35 字数 52 浏览 1 评论 0原文

Common Lisp 的 defsetf 方案中是否有等效项?

Is there an equivalent in Scheme of Common Lisp's defsetf?

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

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

发布评论

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

评论(2

浪漫人生路 2024-08-06 17:16:35

我很确定标准(RnRS)方案中没有等效项,但是 SRFI 17 受某些Scheme 实现的支持,允许您为通用位置定义setter。

I'm pretty sure that there isn't an equivalent in standard (RnRS) Scheme, but SRFI 17, which is supported by some Scheme implementations, allows you to define setters for generalized places.

旧人 2024-08-06 17:16:35

我认为不存在。 我认为 defsetf 允许你在 Lisp 中做类似 (setf (car x) 5) 的事情,即使用看似函数的结果作为左值。 但在Scheme中,他们必须定义单独的变异函数,例如set-car!set-cdr!,才能完成相同的任务; 上面的例子是(set-car! x 5)

I don't think there is. I think defsetf allows you to do things in Lisp like (setf (car x) 5) i.e. use what appears to be the result of a function as an l-value. But in Scheme, they have to define separate mutating functions, like set-car! and set-cdr!, to accomplish the same task; the above example would be (set-car! x 5).

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