gpt4 book ai didi

scheme - 如何解决此错误 "reference to an identifier before its definition: with"

转载 作者:行者123 更新时间:2023-12-02 09:00:23 25 4
gpt4 key购买 nike

我正在学习《编程语言:应用与解释》,执行#lang plai后可以在DrRacket 5.2.1中运行前两章的示例。但是当我输入第三章的第一个示例时,如下所示:

(with (x 5) (+ x x))

我收到以下错误:

reference to an identifier before its definition: with

我在这本书里没有找到with的定义。我需要图书馆吗?

最佳答案

with 构造不是您在自己的程序中使用的东西 - 它是存在于您定义的语言中的东西。换句话说,它是您实现的东西,而不是您使用的东西。请注意,书籍总是将其与大括号一起使用,{with {x ...} ...},这是为了避免您遇到的这种确切的困惑 - 大括号始终是在您实现的语言的代码中使用,圆括号用于您自己的实现的代码。

请注意,在 Racket 中定义您自己的 with 很简单,但这是错误的,并且可能会让您更加困惑。您不应该尝试在 Racket 中使用它,而应该按照本书的内容进行操作,在第 3 章末尾,您将拥有一个可工作的 WAE 语言解释器,然后您将能够使用它来运行 WAE 程序,使用 with

顺便说一句,如果您正在寻找与 with 类似的 Racket 形式,请查看 let ——唯一的区别是 let 允许您指定多个绑定(bind),而不仅仅是一个。

关于scheme - 如何解决此错误 "reference to an identifier before its definition: with",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11412546/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com