我有run
文件中的功能run.scm
。我想run
在test.scm
. 我将如何在 Gambit 方案中执行此操作?
我已经尝试过了(import "run.scm")
,但它只是抱怨它import
是一个未绑定的变量。
Gambit Schemeinclude
不使用import
.
Gambit Scheme 没有标配模块,对于您似乎正在描述的模块,您必须使用Blackhole,它是 Gambit 的扩展,需要单独安装和加载,或者基于 gambit 的Gerbil Scheme(所以几乎和我猜的一样快,尽管我从未使用过它)。另一个基于 Gambit Scheme 的带有模块的方案是LambdaNative,它具有独特的“外部”模块系统,主要用于编写移动应用程序。
所以文件run.scm
和test.scm
在同一个文件夹中......
运行.scm
(define (run . args)
(if (not (null? args))
( println args)
( println "no args")))
测试.scm
(include "run.scm")
(define (test-run . args)
(if (not (null? args))
(run args )
(println "run not tested")))
然后从口译员(gsi)
>(load "test.scm")
>(test-run 1 2 3) ; output -> 123
>(run) ; output -> no args
>(test-run) ; output -> run not tested