Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scheme 在MIT方案中读取命令行参数_Scheme_Mit Scheme - Fatal编程技术网

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

Scheme 在MIT方案中读取命令行参数,scheme,mit-scheme,Scheme,Mit Scheme,我正在尝试使用MIT scheme(在GNU/Linux下运行的MIT/GNU scheme,7.7.90版+| |微码15.1 | |运行时15.7)运行scheme程序,我想访问命令行参数 我查阅了文档,但没有找到任何具体的内容。 我已尝试使用命令行,但收到一条错误消息: ;Unbound variable: command-line 我是否必须加载一些库才能使用命令行,或者是否有其他函数用于此操作?我已设法找到以下解决方案 我创建了一个具有以下定义的文件init.scm: (define

我正在尝试使用MIT scheme(在GNU/Linux下运行的MIT/GNU scheme,7.7.90版+| |微码15.1 | |运行时15.7)运行scheme程序,我想访问命令行参数

我查阅了文档,但没有找到任何具体的内容。 我已尝试使用命令行,但收到一条错误消息:

;Unbound variable: command-line

我是否必须加载一些库才能使用命令行,或者是否有其他函数用于此操作?

我已设法找到以下解决方案

我创建了一个具有以下定义的文件
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
时,函数 调用解析参数列表

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

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

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

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

我已经与麻省理工学院方案开发人员核实过,这个解决方案是可行的。
command-line-args