Previous: scheme overview libraries, Up: scheme overview [Index]
A Scheme program is invoked via a top–level program. Like a library, a top–level program contains imports, definitions and expressions, and specifies an entry point for execution. Thus a top–level program defines, via the transitive closure of the libraries it imports, a Scheme program.
The following top–level program obtains the first argument from the
command line via the command-line
procedure from the
(rnrs programs (6))
library. It then opens the file using
open-file-input-port
, yielding a port, i.e. a connection
to the file as a data source, and calls the get-bytes-all
procedure to obtain the contents of the file as binary data. It then
uses put-bytes
to output the contents of the file to standard
output:
#!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))