R6RS:翻訳:R6RS:1.13 Top-level programs

R6RS:翻訳:R6RS:1.13 Top-level programs

1.13 トップレベルプログラム

Scheme のプログラムはトップレベルプログラムを経由して起動される。ライブラリのように、トップレベルプログラムにはライブラリの取り込みがあり、定義があり、式があり、それから実行のためのエントリポイントがある。したがって、トップレベルプログラムは、その導入しているライブラリ群の推移閉包を経由して、 Scheme プログラムを定義している。

次のトップレベルプログラムは (rnrs programs (6)) ライブラリ(R6RS:翻訳:Standard Libraries:10 Command-line access and exit values 参照)の command-line 手続きを経由してコマンドラインの最初の引き数を取り出し、それから、 open-file-input-port (R6RS:翻訳:Standard Libraries:8.2.7 Input ports 参照)を使ってファイルを開き、ポート、すなわちデータの読み込み元としてファイルへの接続を生成し、 get-bytevector-all 手続きを呼び出し、ファイルの内容をバイナリデータとして取り出す。次に put-bytevector を使ってファイルの内容を標準出力に書き出している。

#!r6rs
(import (rnrs base)
        (rnrs io ports)
        (rnrs programs))
(let ((p (standard-output-port)))
  (put-bytevector p
                  (call-with-port
                      (open-file-input-port
                        (cadr (command-line)))
                    get-bytevector-all))
  (close-port p))
More ...