我正在尝试使用MIT-scheme (运行在GNU/Linux下的MIT/GNU scheme,Release 7.7.90.+ || Microcode15.1 || Runtime15.7)运行一个Scheme程序,并且我想访问命令行参数。
我已经查看了文档,但我没有找到任何具体的东西。我已经尝试了命令行,但是我得到一个错误信息:
;Unbound variable: command-line我是否必须加载一些库才能使用命令行,或者是否有其他函数可以执行此操作?
发布于 2012-08-16 04:52:53
我设法找到了以下解决方案。
我已经创建了一个具有以下定义的文件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)。
然后,我编写了一个shell脚本(bash),它调用我的主Scheme脚本,如下所示:
mit-scheme --band "init.com" --interactive --batch-mode --args $* < myscript.scm最后,在我的主脚本中,我可以通过变量访问命令行参数
command-line-args我不确定这是否是标准/正确的方法,但至少它是有效的。
https://stackoverflow.com/questions/11616474
复制相似问题