Prolog 写経記 その 75 escape/1, escape/2, escape/3
(ほぼ) 毎日淡々と Prolog を写経します.元ネタはこちら.
- 作者: ボグダンフィリピッチ,中島誠,伊藤哲郎
- 出版社/メーカー: 海文堂出版
- 発売日: 1990/08
- メディア: 単行本
- 購入: 4人 クリック: 33回
- この商品を含むブログ (68件) を見る
escape/1
,escape/2
,escape/3
を写経します.順番では
charset/1
なのですが,その中で escape/1
を使っているのでこちらを先に.解説
端末に制御シーケンスを送るのに使われる述語.
ふむ.
モード
escape(+) escape(+, +) escape(+, +, +)
ふむ.
定義
では,こいつの定義を写経しませう.
escape(Code) :- put(27), write(Code). escape(Code1, Code2) :- put(27), write('['), write(Code1), write(Code2). escape(Code1, Code2, Code3) :- put(27), write('['), write(Code1), write(';'), write(Code2), write(Code3).
おぉ,これは UNIX なんかのターミナルでよく使うやつですね.
色付けたりリバースにしたりとか.
でもまぁ,述語としてはどうとうこともなく.
注記
逝去シーケンスを出す述語は,画面管理の述語のほとんど全てに利用されている.別な方法で制御シーケンスを端末に送ることもできる.たとえば,必要な全てのコードを並べたリストを作り,ついで次の述語で出力するとよい.
write_code([]) :- !. write_code([C | Rest]) :- write(C), write_code(Rest).
ふむ.
例
では使用例を写経しませう.
...
と思ったのだけれど,使用例がない...
まぁ,他の述語で使ってるっていうんだからよしとしよう.