【问题标题】:why my macro-stepper not have "Next term"?为什么我的宏步进器没有“下学期”?
【发布时间】:2020-05-02 06:55:48
【问题描述】:

可能与 :Macro stepper in DrRacket 冗余

但我的问题是“为什么我的宏步进器中没有“上一个学期”和“下一个学期”按钮? 我注意到那里:http://www.ccs.neu.edu/home/ryanc/macro-stepper/macro-stepper-Z-H-1.html#node_chap_1 说:

当您的程序包含多个顶级定义或表达式时,宏步进器还提供“上一个术语”和“下一个术语”按钮以在您的程序术语中上下移动。

在我看来,顶级意味着“在一个模块中”,但是“多个顶级定义”是什么意思?有人可以给我一个例子来解释吗? 我试过在不同的地方写两个define-rule宏并将它们导出,并且已经看到macro-steper中的两个宏出现了,但仍然没有“下一个术语”。

有没有更多关于如何使用它的文章? 是不是因为那篇文章已经过时了,当前的dracket里没有“上一期”和“下一期”的按钮?

DrRacket 版本:windows10 7.6

我发现了这个:

https://github.com/racket/macro-debugger/blob/13ee731da98fbe14a0d486d614a5c46f26ccd933/macro-debugger/macro-debugger/macro-debugger.scrbl#L258

https://github.com/racket/macro-debugger/blob/master/macro-debugger/macro-debugger/view/stepper.rkt#L84

但我仍然不知道“多个顶级定义”是什么意思..

我尝试创建两个文件,源代码如下: https://imgur.com/qMfaI6t https://imgur.com/FbHzDUl

当我开始宏步进器时,它显示如下:

https://imgur.com/FuoSvlh 只有四个按钮,没有“上学期”和“下学期”。 还是我误解了“多个顶级定义”?

更新:我发现了这个:

如果宏步进器显示多个扩展,那么它还提供“上一个术语” 和“下一个术语”按钮在扩展列表中上下移动。水平线定界 其他人的当前扩展。

【问题讨论】:

  • 截图?请。
  • 显示缺少按钮的屏幕截图。
  • @soegaard:你能给我看一个关于“多个顶级定义”的例子吗,谢谢!
  • @soegaard:sorry ,我好像不能上传两张关于这个问题的图片
  • 上传到imgur并粘贴链接。

标签: macros scheme racket


【解决方案1】:

我不确定是否还有办法使用 DrRacket 中的“宏步进器”按钮来获取多个术语的宏步进器,但您也可以使用 macro-debugger/stepper 库中的 macro-stepper-repl

注意:在最新版本的 Racket(直到并包括 Racket 7.7)中,macro-stepper-repl 经常会显示以字符 #~ 开头的看起来像垃圾的“术语”——这就是 Racket 打印“编译表达式”的方式.这些不应该显示,但代码中有一个错误试图将它们过滤掉。您可以使用“步进器”菜单中的“删除所选术语”从宏步进器中删除这些术语。

【讨论】:

    猜你喜欢
    • 2020-06-02
    • 1970-01-01
    • 2019-01-19
    • 2015-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多