【问题标题】:Is there a way to use load-mode for files in DrRacket?有没有办法对 DrRacket 中的文件使用加载模式?
【发布时间】:2018-01-26 20:50:28
【问题描述】:

我想以与某些“传统语言”相同的方式使用 DrRacket。特别是,我想浏览一个文件,就好像它是发给解释器的一系列命令,而不是作为一个模块。

基本上我想在加载模式下运行至少一个文件,但我不确定是否可以使用 DrRacket 来实现。

理想情况下,我可以:

*指定一个设置语言并可能加载一些模块的文件,这些模块在启动时默认运行。

*然后加载一个不是模块的文件(并且没有#lang规范)并运行它。

如果它可以像传统语言一样允许重新定义,那也很好(因为我想使用 Scheme)。

【问题讨论】:

    标签: scheme racket read-eval-print-loop


    【解决方案1】:

    是的,你可以,事实上,“传统语言”(和“教学语言”)实际上只是作为DrRacket Plugins 实现的。您可以将它们从 DrRacket 副本中删除,甚至添加新的。

    有多种方法可以做到这一点,具体取决于您是否可以接受保存在文件中的#lang(或#reader)。如果不是,它仍然可行,您只需使用drracket:get/extend:extend-unit-frame 将您的工具添加到 DrRacket,并可能使用drracket:get/extend:extend-definitions-text 轻松扩展定义窗口。

    我不会在这里详细介绍制作通用 DrRacket 插件的细节,这属于另一个问题...DrRacket Plugins Manual 也有您需要的信息。1 我会的,但是,请指出如何在开箱即用的加载模式下使用 DrRacket。

    查看racket/load 语言。它旨在运行顶层中的每个表达式,就像您在 REPL 中键入它一样。我发现它对于测试 Racket 模块和顶级交互之间的差异非常有用。

    当然,如果你不做 DrRacket 插件,你还是需要把:

    #lang racket/load
    

    在您的文件顶部,但您会得到一个开箱即用的“传统模式”。

    1如果没有,请继续提问,当然,我们总是喜欢任何愿意贡献的人的帮助。

    【讨论】:

      猜你喜欢
      • 2019-10-22
      • 1970-01-01
      • 1970-01-01
      • 2019-01-12
      • 2019-12-31
      • 2020-03-14
      • 2018-01-05
      • 1970-01-01
      • 2017-05-06
      相关资源
      最近更新 更多