Scheme 在MIT方案中读取命令行参数
我正在尝试使用MIT scheme(在GNU/Linux下运行的MIT/GNU scheme,7.7.90版+| |微码15.1 | |运行时15.7)运行scheme程序,我想访问命令行参数 我查阅了文档,但没有找到任何具体的内容。 我已尝试使用命令行,但收到一条错误消息: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
;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