0

我有run文件中的功能run.scm。我想runtest.scm. 我将如何在 Gambit 方案中执行此操作?

我已经尝试过了(import "run.scm"),但它只是抱怨它import是一个未绑定的变量。

4

1 回答 1

3

Gambit Schemeinclude不使用import.

Gambit Scheme 没有标配模块,对于您似乎正在描述的模块,您必须使用Blackhole,它是 Gambit 的扩展,需要单独安装和加载,或者基于 gambit 的Gerbil Scheme(所以几乎和我猜的一样快,尽管我从未使用过它)。另一个基于 Gambit Scheme 的带有模块的方案是LambdaNative,它具有独特的“外部”模块系统,主要用于编写移动应用程序。

所以文件run.scmtest.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
于 2020-02-10T23:53:19.440 回答