在MIT-scheme中读取命令行参数

5
我想使用MIT-scheme(在GNU/Linux下运行的MIT/GNU Scheme,版本为7.7.90.+ || 微码15.1 || 运行时15.7)来运行一个scheme程序,并且我希望能够访问命令行参数。我已经查阅了文档,但没有找到具体的信息。我尝试使用command-line,但是出现了错误信息:
;Unbound variable: command-line

我需要加载一些库才能使用命令行,还是有其他函数可以实现这个功能吗?
1个回答

4

我已经找到了以下解决方案。

我创建了一个名为init.scm的文件,并添加了以下定义:

(define command-line-args '())

(define parse-argument-list
  (lambda (arg-list)
    (set! command-line-args
      (if (null? arg-list)
          (list)
          (cdr arg-list)))))

(set-command-line-parser! "args" parse-argument-list)

当发现命令行选项--args时,调用函数parse-argument-list

我已经将此文件加载到mit-scheme解释器中,并使用过程disk.save保存了一个世界映像(init.com)。

然后,我编写了一个调用我的主Scheme脚本的shell脚本(bash),如下所示:

mit-scheme --band "init.com" --interactive --batch-mode --args $* < myscript.scm

最后,在我的主脚本中,我可以通过变量访问命令行参数。

command-line-args

我不确定这是否是标准/正确的做法,但至少它有效。


我已经与MIT-scheme开发人员核实,这个解决方案是可行的。 - Giorgio

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