使用MIT-SCHEME编译.scm文件

4

我将使用“更好的”Scheme解释器/编译器MIT-SCHEME来编译这段简单的Scheme代码:

code.scm

(declare (usual-integrations))
(define (s x) (* x x))
(display (s 2))

我正在做什么?我在做这个:

DXHJ ~ mit-scheme
DXHJ ~ (cf "code.scm")

;Generating SCode for file: "s.scm" => "s.bin"... done
;Compiling file: "s.bin" => "s.com"... done
;Unspecified return value

好的,那么在这之后我就不能运行任何东西了。我该如何生成一个.out文件?


1
你所说的“run”是什么意思?如果你想让它作为一个独立的二进制文件运行,据我所知,MIT-Scheme并不能生成这样的文件。当你从REPL中加载code.com时,它可以正常工作。 - Rptx
我就是不理解在MIT-SCHEME上编译的含义。 - Victor Martins
它基本上是将文件编译,以便加载和执行更快。如果你有code.scm和code.com两个文件,当你在repl中键入(load "code")时,将会加载code.com。除此之外,它与任何其他语言的情况相同。 - Rptx
是的,我知道。我只是想像C或C++一样在没有MIT-SCHEME的情况下运行这些程序。 - Victor Martins
1
嗯,Chicken Scheme 可以编译为 C,Bigloo 和 Gambit 也可以。这里有一个列表:http://community.schemewiki.org/?scheme-implementations - Rptx
1个回答

6

看起来 mit-scheme 无法编译为本地独立二进制文件。还有其他的实现可以做到这一点,例如 Chicken scheme、Bigloo 和 gambit。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接