Prolog 写経記 その 78 erase/2
(ほぼ) 毎日淡々と Prolog を写経します.元ネタはこちら.
- 作者: ボグダンフィリピッチ,中島誠,伊藤哲郎
- 出版社/メーカー: 海文堂出版
- 発売日: 1990/08
- メディア: 単行本
- 購入: 4人 クリック: 33回
- この商品を含むブログ (68件) を見る
erase/2
を写経します.解説
erase(Entity, Part)
は画面のある部分を消去する.Entity
はscreen
かline
であり,Part
はカーソルの現在位置に関するfrom
,to
あるいはall
である.
ふーん.
おらいが使っているのは Windows 版の SWI-Prolog なんですが...
ちゃんと役に立つのでしょうか?
かなり微妙...
(こぴぺ)
モード
erase(+, +)
ふむ.
定義
では,こいつの定義を写経しませう.
erase(Entity, Part) :- entity_code(Entity, Char), part_code(Part, Code), escape(Code, Char). entity_code(screen, 'J') :- !. entity_code(line, 'K'). part_code(from, '0') :- !. part_code(to, '1') :- !. part_code(all, '2').
つまんね.
例
では使用例を写経しませう.
cls :- erase(screen, all). delete_line :- erase(line, all).
cursor/2
を使った述語の定義のみ.
試しに使ってみますか.
まずは cls/0
Yes 6 ?-
おぉ!!!!
消えたよ!!
上記は,cls/0
を実行した後です.でもでも,その cls/1
を入力した部分は消えてます.
SWI-Prolog,ちょっとだけ仕事した!!
続けて delete_line/0
6 ?- delete_line. Yes
??
消えたのかどうかが分からない...
ちょっと表示を加えてもう一度.
7 ?- write('Ebi'), delete_line, write('Yuri'). EbiYuri Yes 8 ?-
うーみゅ...
残念ながら行の消去は対応していないようです.
って,全然残念って気がしませんが.どうでっもいぃでっすよ♪