如何运行(解释)存储在文件中的Scheme程序?

如何运行(解释)存储在文件中的Scheme程序?,scheme,read-eval-print-loop,chez-scheme,Scheme,Read Eval Print Loop,Chez Scheme,目前我正在使用Petite Chez方案的REPL特性。这对于小示例等来说效果很好 但是,如何将整个程序存储在“.scm”文件中,然后从命令行运行(解释)它?我熟悉(load“C:/…)命令,但是这只是将定义从文件加载到REPL中 如何使用C/C++中类似Scheme的程序运行程序,在C/C++中编译并执行二进制“.exe” 谢谢。简单地说,您只需在文件中编写程序,然后放入#/usr/bin/scheme——将脚本作为程序的第一行,将其标记为可执行,然后运行它。下面是一个模拟Unixecho命令

目前我正在使用Petite Chez方案的REPL特性。这对于小示例等来说效果很好

但是,如何将整个程序存储在“.scm”文件中,然后从命令行运行(解释)它?我熟悉(load“C:/…)命令,但是这只是将定义从文件加载到REPL中

如何使用C/C++中类似Scheme的程序运行程序,在C/C++中编译并执行二进制“.exe”


谢谢。

简单地说,您只需在文件中编写程序,然后放入
#/usr/bin/scheme——将脚本
作为程序的第一行,将其标记为可执行,然后运行它。下面是一个模拟Unix
echo
命令的示例脚本:

#!/usr/bin/scheme --script
(let ([args (cdr (command-line))])
  (unless (null? args)
    (let-values ([(newline? args)
                  (if (equal? (car args) "-n")
                      (values #f (cdr args))
                      (values #t args))])
      (do ([args args (cdr args)] [sep "" " "])
          ((null? args))
        (printf "~a~a" sep (car args)))
      (when newline? (newline)))))

有关详细信息,请参阅的第2.6节。

如果您想要实际的可执行文件,有几种实现支持编译为本机可执行文件。是其中之一,它支持许多不同的方案版本和方言(R5R、R6R、Racket等)。还有很多,举几个例子。

询问者似乎在使用Windows。但仍然投票支持,因为它很有用:)