在MIT方案中读取命令行参数

时间:2012-07-23 16:20:03

标签: scheme mit-scheme

我正在尝试使用MIT-scheme(在GNU / Linux下运行的MIT / GNU Scheme,版本7.7.90。+ || Microcode 15.1 || Runtime 15.7)运行一个方案程序,我想访问命令 - 行参数。

我查看了文档,但我没有找到任何具体内容。 我尝试过命令行,但收到​​错误消息:

;Unbound variable: command-line

我是否必须加载一些库才能使用命令行,或者还有其他功能吗?

1 个答案:

答案 0 :(得分:3)

我设法找到了以下解决方案。

我创建了一个文件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时,该函数 <{1}}被调用。

我已将此文件加载到parse-argument-list解释程序中并保存了世界图像 (mit-scheme)使用init.com

程序

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

disk.save

最后,在我的主脚本中,我可以通过变量

访问命令行参数
mit-scheme --band "init.com" --interactive --batch-mode --args $* < myscript.scm

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