我想像使用一些“遗留语言”一样使用DrRacket。特别是,我想通过一个文件,就好像它是一个发给解释器的命令序列,而不是作为一个模块。
基本上我想在加载模式下运行至少一个文件,但我不确定是否可以使用DrRacket来完成它。
理想情况下,我可以:
*指定一个设置语言的文件,并可能加载一些模块,这些模块在启动时默认运行。
*然后加载不是模块的文件(并且没有#lang规范)并运行它。
如果它允许重新定义,就像遗留语言一样,这也很好(因为我想使用Scheme)。
答案 0 :(得分:2)
是的,你可以,事实上,你可以使用传统语言' (以及'教学语言')实际上只是实现为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