私は 'scheme file.scm'のようなものを入力し、ファイルを解釈してからREPLにロードするのではなくシェルに戻したいと思っています。MITスキームで.scmスクリプト(REPL外)を実行するにはどうすればよいですか?
編集:私はスキーム< test.scmを試しましたが、それでもREPLを使用していますが、ストリームが終了したときにスキームが終了するだけです。
私は 'scheme file.scm'のようなものを入力し、ファイルを解釈してからREPLにロードするのではなくシェルに戻したいと思っています。MITスキームで.scmスクリプト(REPL外)を実行するにはどうすればよいですか?
編集:私はスキーム< test.scmを試しましたが、それでもREPLを使用していますが、ストリームが終了したときにスキームが終了するだけです。
scheme <file.scm
が有効です(--interactive
を指定していない限り、stdinは端末ではなく、非対話形式で動作します)。
あなたが望むのはSCMだと思います。
$ scm -f foo.scm arg1 arg2 arg3
詳細はhttp://people.csail.mit.edu/jaffer/scm_3.html#SEC28を参照してください:あなたはこのよう.scmスクリプトを実行することができます。
SCMホームページ:http://people.csail.mit.edu/jaffer/SCM
奇妙なことですが、-fなしでは動作しません。これに注意してください。 – fyodorananiev
MITのスキームを使用した方式でプログラムを実行するには:
scheme --quiet < program.scm
--quiet
オプションは、プログラムからの出力は、あなたが勝っ表示されている唯一のもの(すなわちであることを保証あなたの要件に応じて、REPLが見えません)。
参考:scheme --help
--batchモード、--quiet、--silent
はバージョンと著作権のスタートアップレポート、および 決別を抑制します。
このコマンドラインオプションは、間違ってlist of command line options in the documentationから削除されているようです。 scheme --help
が表示されており、--batch-mode
が参照マニュアルの他の部分(例:here)で使用されているため、これは正規のコマンドラインオプションだと思います。
chez --help
を確認した後、私はこの(のは、私はシェ・スキームを使用しているとしましょう)が見つかりました:また
chez --script ./temp.scm
を、--verbose
は非常に便利です:
chez --verbose --script ./temp.scm
これは満たしていませんOPが編集した「REPLを使用しない」という要件。 [この回答](https://stackoverflow.com/a/47724861/5916915)を参照してください。 – Flux