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))