可能是与.NET Framework 2.0重合。DrRacket中的宏步进器
但我的问题是 "为什么我的宏步器中没有 "上一术语 "和 "下一术语 "的按钮?http:/www.ccs.neu.eduhomeryancmacro-steppermacro-stepper-Z-H-1.html#node_chap_1说。
当你的程序由多个顶层定义或表达式组成时 宏步骤还提供了 "上一术语 "和 "下一术语 "的按钮,可以在你的程序中上下移动。
在我看来,top-level的意思是 "在一个模块中",但 "多个top-level定义 "是什么意思呢,谁能给我举个例子解释一下?
是否有更多关于如何使用它的文章,是否因为那篇文章已经过时,并且在当前的数据库中没有 "上一术语 "和 "下一术语 "按钮?
DrRacket版本:7.6在windows10下。
我发现这个。
https:/github.comracketmacro-debuggerbmastermacro-debuggerviewstepper.rkt#L84。
但我还是不知道 "多顶层定义 "是什么意思。
我试着建立了两个文件,并建立了这样的源文件,但我还是不知道什么是 "多顶层定义"。https:/imgur.comqMfaI6thttps:/imgur.comFbHzDUl
当我开始宏步时,它就会这样显示。
https:/imgur.comFuoSvlh只有四个按钮,没有 "上一术语 "和 "下一术语",还是我误解了 "多个顶层定义"?
更新:我发现这个。
如果宏步进器显示了多个扩展,那么它还提供了 "上一术语 "和 "下一术语 "按钮来在扩展列表中上下移动。水平线将当前的扩展与其他扩展进行了划分。
我不知道还有没有办法使用DrRacket中的 "Macro Stepper "按钮来获得一个宏步进器的多个术语,但你也可以使用 macro-stepper-repl
来自 macro-debugger/stepper
库。
注意:在最新版本的Racket中(包括Racket 7.7)。macro-stepper-repl
经常会显示一些看起来像垃圾一样的 "术语",这些 "术语 "的开头字符是 #~
--- Racket就是这样打印 "编译后的表达式 "的。这些不应该被显示出来,但代码中有一个错误,它试图过滤掉它们。你可以使用 "Stepper "菜单中的 "Remove selected term "从宏程序中删除这些术语。