我如何从记事本++/cmd/powershell运行一个方案脚本?

How do I run a scheme script from notepad++/cmd/powershell?

在python中,我添加python和文件的路径,我的脚本将运行。

在haskell中,我在我的文件上调用GHC编译器生成可执行文件,或者我加载GHCi并加载文件的路径以使用函数,我的脚本是运行ning .

在 Scheme 中,这两种方法都不适合我。在我搜索的所有地方,我只听说过 emacs 和 SLIME。我对两者都不感兴趣。我只想在 notepad++ 或任何其他简单的文本编辑器中编写脚本,然后 运行 通过方案解释器编写脚本,或者将其编译成 exe,以测试 MIT SICP 书中的代码。

我安装了 MIT/GNU Scheme 用于学习目的。我对 Racket 不感兴趣,因为它现在与 Scheme 有多么不同(我不想进一步混淆自己,我只想学习基础知识。)

让我感到困惑的一件事如下。当我通过开始菜单快捷方式打开 mit-scheme 时,它​​会打开 edwin 编辑器(它的教程(C-h t 命令)显然是 "corrupted" 所以我不能用它代替 notepad++,此时我也不想用它(对此太沮丧了))。 edwin 编辑器的文件位置在 bin 文件夹中。 bin 文件夹只有 2 个文件:mit-scheme.exe 和 dibutils.dll。如果我双击 mit-scheme.exe 它只会给我一个错误,但显然使用快捷方式会打开 edwin 编辑器(它应该位于与 mit-scheme.exe 相同的文件夹中(它不是)).

为什么所有这些都如此令人费解?没有一个简单的方法来获取我的方案脚本 运行ning 吗?我只想 运行 像这样的东西:

(define hello-world
   (lambda ()
         (begin
    (write ‘Hello-World)
            (newline)
    (hello-world))))

在网上搜索解决方案对我来说是徒劳的,我已经浪费了很多时间-所以希望我最终能在这里得到答案。

谢谢。

编辑:我在 windows 7 上,*nix 操作系统不是一个选项。

mit-scheme 有 --load 开关。因此

mit-scheme --load path/to/script.scm scrip2.scm -- args ...

我认为您也可以像这样使用 Racket 到 运行 标准 r6rs:

plt-r6rs script.scm 

r5rs 有 plt-r5rs。 Racket 还可以使 运行 的可执行文件更快 raco exe script.scm.

编辑

顺便说一句:plt-r6rs 适用于 运行ning 使用标准 R6RS 方案报告的程序。 plt-r5rs 适用于使用标准 R5RS 方案报告的 运行ning 程序。我不知道你所说的 "different it is from Scheme" 是什么意思。 Racket 有它自己的语言,这是默认的,这是它自己不兼容的 Scheme 方言,但这不是不使用该软件的理由。这就像不使用 gcc,因为它支持非标准的 C++ 语言,而忽略了您可以使用开关来表现得标准。

R7RS-small实现只有一个,参考实现赤壁方案。我猜每个实现都在等待完整的 R7RS 报告,所以它是当前标准的 R6RS。

R5RS 和 R6RS 中的列表是可变的(但在 R6RS 中你需要导入 (rnrs mutable-pairs),但这是标准的一部分。除非你别无选择,否则尽量不要从标准方案中导入球拍库. 先检查 SRFI。

没有那么多Scheme版本和scheme实现。对于至少已经存在 10 年的每一种流行编程语言,都有超过 3 种实现和几个不兼容的标准版本。如果您认为您提到的语言的实现很少,那您就大错特错了。 Python 有 many implementations and incompatible standard versions. Haskell also has many implementations and versions of their standard。 Scheme 是 70 年代的,所以它已经存在了 40 年,所以 Scheme 的版本比 Haskell 和 Python 多是很自然的。

这就是我能够运行 从记事本++ 设计代码的方式,

我放到notepad++里运行配置:

"C:\Program Files (x86)\MIT-GNU Scheme\bin\mit-scheme.exe" --heap 512 --library "C:\Program Files (x86)\MIT-GNU Scheme\lib" --load "$(FULL_CURRENT_PATH)"

然后我能够 运行。但是,我必须先保存文件,否则不是运行ning。另请注意 (+ 2 2) 结果未打印,但如果我调用程序,它工作正常。

sample