目前我正在使用 Petite-Chez Scheme 的 REPL 功能。这适用于小示例等。
但是,如何将整个程序存储在文件“.scm”中,然后从命令行运行(解释)它?我熟悉 (load "C:/..") 命令,但是这只会将文件中的定义加载到 REPL 中。
如何使用 Scheme 运行程序,例如在 C/C++ 中编译然后执行二进制“.exe”的程序?
谢谢。
目前我正在使用 Petite-Chez Scheme 的 REPL 功能。这适用于小示例等。
但是,如何将整个程序存储在文件“.scm”中,然后从命令行运行(解释)它?我熟悉 (load "C:/..") 命令,但是这只会将文件中的定义加载到 REPL 中。
如何使用 Scheme 运行程序,例如在 C/C++ 中编译然后执行二进制“.exe”的程序?
谢谢。
简而言之,您只需将程序写入一个文件,#!/usr/bin/scheme --script
作为程序的第一行,将其标记为可执行,然后运行它。这是一个模拟 Unixecho
命令的示例脚本:
#!/usr/bin/scheme --script
(let ([args (cdr (command-line))])
(unless (null? args)
(let-values ([(newline? args)
(if (equal? (car args) "-n")
(values #f (cdr args))
(values #t args))])
(do ([args args (cdr args)] [sep "" " "])
((null? args))
(printf "~a~a" sep (car args)))
(when newline? (newline)))))
有关详细信息,请参阅使用 Chez 方案的第 2.6 节。
如果您想要一个实际的可执行文件,有几个实现支持编译为本机可执行文件。Racket就是其中之一,它支持许多不同的方案版本和方言(R5RS、R6RS、Racket,...)。还有很多。Chicken (R5RS + SRFIs)、Gambit (R5RS + SRFIs)和Bigloo (R5RS, + SRFIs)等等。