PLT 方案 - 跟踪环境变量绑定

发布于 2024-10-01 07:40:31 字数 262 浏览 8 评论 0原文

我正在尝试为 PLT 方案(Racket)中的家庭作业创建一个简单的语言解释器。为了跟踪变量绑定,我似乎无法创建和更新跟踪分配的变量及其值的环境。在 MIT Scheme Reference 中,我发现有关环境是第一类对象的信息,但使用那里列出的命令(例如环境绑定?)在 PLT Scheme 中不起作用。

在不使用 let 或任何类似命令式 (!) 功能的情况下实现此目的的最佳方法是什么?

I am attempting to create a simple language interpreter for a homework assignment in PLT Scheme (Racket). For tracking variable bindings, I cannot seem to create and update an environment that tracks assigned variables and their values. In the MIT Scheme Reference, I found information about environments being first class objects, but using the commands listed there (such as environment-bound?) do not work in PLT Scheme.

What is the best way to accomplish this is scheme without using let or any imperative-like (!) functionality?

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

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

发布评论

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

评论(2

丘比特射中我 2024-10-08 07:40:31

如果您只是在Scheme中创建解释器,您可能只想创建自己的环境数据结构,可能作为关联列表:((var1 val1) (var2 val2) (var3 val3))等等。将环境作为列表传递和更新比处理任何特定的Scheme 环境实现更简单。

If you're just creating an interpreter in Scheme, you might want to just create your own environment data structure, possibly as an association list: ((var1 val1) (var2 val2) (var3 val3)) and so on. It's simpler to pass around and update the environment as a list, rather than dealing with any particular Scheme's implementation of environments.

司马昭之心 2024-10-08 07:40:31

在文档中查找有关命名空间功能的任何内容。

Look up in the docs for anything around namespace functionality.

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