Gaucheクックブック

Gauche (ゴーシュ)クックブックは動作する短いコードを一問一答形式で提示していくスタイルのプログラム解説ページです。毎週月曜、木曜に更新。

2007-09-27

画面をクリアする

問題

端末の画面をクリアしたい。

答え

clearコマンドが返す制御文字を出力すると画面を消去できます。

(use gauche.process)  ; process-output->string

(define clear
  (let1 c (process-output->string '("clear"))
    (lambda ()
      (display c))))

(clear)               ; 画面を消去する

clearは実行するたびに同じ制御文字を返すので、何度も実行するのは無駄です。上のclear手続きは、コマンドを一度だけ実行してその出力をクロージャで保持しているので、そういう無駄はありません。

具体的にどのような制御文字が出力されているのかを見てみたければ、displayの替わりにwriteを使ってください。writeは制御文字をエスケープして出力します。

参照