プログラムを終了させる


Tags: R6RS, プログラム

実行中のプログラムを終了させるには exit 手続きを使う。 exit 手続きを引数を与えずに呼び出した場合、プログラムは正常に終了したと見做される。引数を渡した場合、その値の解釈は実行環境に依存する。

例えば Unix 系のシステムの場合では 0 は正常終了、 1 以上は異常終了として扱われる。

(if (null? (cdr (command-line)))
    (exit 0)                            ; 正常終了
    (exit 1))                           ; 異常終了

また、 Plan9 などの OS ではプロセスの終了状態を文字列で表すため、 exit の引数には任意の値を渡すことができる。

(exit "success")

これが他の環境でどのように解釈されるかは実装依存である。

引数に #f を渡した場合は常に異常終了として扱われる。よって、正常/異常終了を可搬性を保って書くには

(if (null? (cdr (command-line)))
    (exit)                              ; 正常終了
    (exit #f))                          ; 異常終了

とする。