代码之家  ›  专栏  ›  技术社区  ›  Michael Winterstein

有没有办法对DrRacket中的文件使用加载模式?

  •  1
  • Michael Winterstein  · 技术社区  · 6 年前

    我想以同样的方式使用DrRacket,它适用于一些遗留语言。特别是,我希望遍历一个文件,就像它是向解释器发出的一系列命令一样,而不是作为一个模块。

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

    理想情况下,我可以:

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

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

    Itd也很好(因为我想使用Scheme),如果它允许重新定义,就像遗留语言一样。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Leif Andersen    6 年前

    是的,你可以,事实上,“遗留语言”(和“教学语言”)实际上只是作为 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. 如果没有,请继续提问,当然我们总是喜欢任何愿意贡献的人的帮助&书信电报;3.