R6RS Scheme: 최상위 프로그램 개요

R6RS Scheme: 최상위 프로그램 개요

Scheme 프로그램이 호출되는 단위인 최상위 프로그램(top-level program)의 개요를 설명해요. 실행 진입점을 지정하는 방식을 다뤄요.

출처: 문서

본문

Scheme 프로그램은 *최상위 프로그램(top-level program)*을 통해 호출돼요. 라이브러리처럼 최상위 프로그램은 가져오기, 정의, 표현식을 담고 있으며 실행의 진입점(entry point)을 지정해요. 따라서 최상위 프로그램은 그것이 가져오는 라이브러리들의 추이적 폐포(transitive closure)를 통해 Scheme 프로그램을 정의해요.

다음 최상위 프로그램은 (rnrs programs (6)) 라이브러리("Command-line access and exit values" 라이브러리 장 참조)의 command-line 프로시저를 통해 명령줄에서 첫 번째 인자를 얻어요. 그런 다음 open-file-input-port(")" 라이브러리 절 참조)를 사용해 파일을 열어 포트(port), 즉 데이터 소스로서 파일에 대한 연결을 만들고, get-bytes-all 프로시저를 호출해 파일 내용을 바이너리 데이터로 얻어요. 그다음 put-bytes를 사용해 파일 내용을 표준 출력으로 내보내요:

#!r6rs
(import (rnrs base)
        (rnrs io ports)
        (rnrs programs))
(put-bytes (standard-output-port)
           (call-with-port
            (open-file-input-port
             (cadr (command-line)))
            get-bytes-all))

더 알아보기 (Learn more)

출처: Top-level programs - R6RS