首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用MIT-Scheme执行.scm脚本(在REPL之外)?

如何使用MIT-Scheme执行.scm脚本(在REPL之外)?
EN

Stack Overflow用户
提问于 2009-05-24 15:13:12
回答 4查看 20.7K关注 0票数 51

我想输入类似于'scheme‘的内容,让它解释这个文件,然后带我回到我的file.scm,而不是把它加载到REPL中。

编辑:我尝试了scheme < test.scm,它仍然使用REPL,唯一的区别是scheme在流结束时退出。

EN

回答 4

Stack Overflow用户

发布于 2009-05-24 15:20:23

scheme < file.scm应该可以工作(只要您不指定--interactive,并且标准输入不是终端,scheme就可以非交互方式工作)。

票数 45
EN

Stack Overflow用户

发布于 2017-12-09 10:54:37

要使用MIT scheme运行方案程序,请执行以下操作:

代码语言:javascript
复制
scheme --quiet < program.scm

--quiet选项确保您的程序的输出是唯一显示的内容(即,根据您的要求,您将看不到REPL )。

警告:如果您的程序使用输入过程(例如readread-charread-line等)提示用户输入,则此功能将不起作用。这是因为shell输入重定向(<) (参见:relevant question)。不幸的是,当使用输入过程时,目前还没有从命令行执行MIT Scheme脚本的适当方法。最好的选择可能是mit-scheme --quiet --load 'myscript',但当脚本结束时,您必须手动退出MIT Scheme。相关邮件列表线程:[MIT-Scheme-devel] How to run a script and exit?

编辑:由于您可能会将<错误地键入为>,从而导致源代码被覆盖,因此我建议将上述命令封装在shell脚本或shell函数中。例如:

代码语言:javascript
复制
runscheme () {
    scheme --quiet < "$1"
}

然后,您就可以运行runscheme program.scm,而不用担心源代码会被覆盖。(特别感谢Paul Rooney让我注意到这个潜在的错误)。

参考文献

scheme --help

--批处理模式,--静默,--静默

取消版本和版权的启动报告以及验证。

这个命令行选项似乎在list of command line options in the documentation中被错误地省略了,但我认为这是一个合法的命令行选项,因为scheme --help显示了它,并且在参考手册的其他部分(例如here)中使用了--batch-mode

票数 17
EN

Stack Overflow用户

发布于 2011-04-13 17:21:24

我想你想要的是SCM。您可以像这样执行.scm脚本:

$ scm -f foo.scm arg1 arg2 arg3

有关更多详细信息,请参阅http://people.csail.mit.edu/jaffer/scm_3.html#SEC28

供应链管理主页:http://people.csail.mit.edu/jaffer/SCM

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/903968

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档