めざましテレビ

今日の早耳ムスメは JESSICA ちゃん,お題は「話題沸騰!! 最新ビューティースポット」.
随分と久しぶりの JESSICA ちゃん.ほぼ一ヶ月ぶり.
ビューティースポットということで,スパだかエステだかなんかそういうのを満喫の JESSICA ちゃん.
全身シャワーでは水着姿を披露してくれてますが,昨年の石田香奈ちゃんとは違う意味でお得感が足りないような気のせいが.単なる好みの問題? (^^;
要するに,直ちんのリラクゼーション姿が見たいゾ!!

Prolog 写経記 その 75 escape/1, escape/2, escape/3

(ほぼ) 毎日淡々と Prolog を写経します.元ネタはこちら.

Prologユーティリティライブラリ

Prologユーティリティライブラリ

今日は escape/1escape/2escape/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).

ふむ.

では使用例を写経しませう.
...
と思ったのだけれど,使用例がない...
まぁ,他の述語で使ってるっていうんだからよしとしよう.


Prolog 写経記 その 76 charset/1

(ほぼ) 毎日淡々と Prolog を写経します.元ネタはこちら.

Prologユーティリティライブラリ

Prologユーティリティライブラリ

続けて charset/1 を写経します.
あまりにつまらないのが並んでいるのでさっさとやっちゃいましょう.

解説

charset(Chars) は画面の文字セットを選択する.Chars はあらかじめ定義された United Kingdom,US ASCII,グラフィック,代用文字,あるいは大用具ラミックセットを示す,ukasciigraphaltch あるいは altgr のいずれかである.

ふーん.
おらいが使っているのは Windows 版の SWI-Prolog なんですが...
ちゃんと役に立つのでしょうか?
かなり微妙...

モード

charset(+)

ふむ.

定義

では,こいつの定義を写経しませう.

charset(Chars) :-
	charset_code(Chars, Code),
	escape(Code).

charset_code(uk, '(A') :- !.
charset_code(ascii, '(B') :- !.
charset_code(graph, '(0') :- !.
charset_code(altch, '(1') :- !.
charset_code(altgr, '(2') :- !.

つまんね.

注記

文字セットの選択は,端末に送られる文字コードの解釈に必要である.通常テキスト用の文字セット (uk あるいは ascii) は,線や方形を描くのに適したグラフィック文字セット (graph) と交換される.
文字セットが選択できる能力は,使用しているハードウェアに大きく依存している.端末の特性についてはマニュアルを見ること.

らじゃあ.
っていうか,マニュアル? SWI-Prolog のマニュアルを見ればいいのか?
あんまり見る気がしないなぁ...

では使用例を写経しませう.
...
と思ったのだけれど,使用例がない...
とりあえず試してみますか.

22 ?- charset(ascii).
B

Yes
23 ?- charset(uk).
A

Yes

US ASCII と UK で何が変わるのか知らないのですが,A とか B とか出力されているところから考えると,効いてなさそう.
とりあえず,\\ のままだなぁ.って,これはフォントによるのか.
まぁ,どうでもいいや.


Prolog 写経記 その 77 cursor/2

(ほぼ) 毎日淡々と Prolog を写経します.元ネタはこちら.

Prologユーティリティライブラリ

Prologユーティリティライブラリ

続けて cursor/2 を写経します.

解説

cursor(Y, X) は,YX をそれぞれ行と列を表す整数としてカーソルの是立ち位置を与える.
cursor(Direction, Amount) はカーソルを相対位置に移動させる.Directionleftrightup あるいは down のいずれか 1 つであり,Amount は整数である.

ふーん.
おらいが使っているのは Windows 版の SWI-Prolog なんですが...
ちゃんと役に立つのでしょうか?
かなり微妙...
(こぴぺ)

モード

cursor(+, +)

ふむ.

定義

では,こいつの定義を写経しませう.

cursor(Y, X) :-
	integer(Y), !,
	escape(Y, X, 'f').
cursor(Direction, Amount) :-
	cursor_code(Direction, Code),
	escape(Amount, Code).

cursor_code(left, 'D') :- !.
cursor_code(right, 'C') :- !.
cursor_code(up, 'A') :- !.
cursor_code(down, 'B').

つまんね.

注記

cursor/2 はカーソルの位置を決める 2 通りの方法を提供している.どちらの方法を使うかは最初の引数のタイプによっている.整数の場合は絶対位置を与える述語,leftrightupdown の場合は相対位置を与える述語となる.画面の左上隅は座標 (1, 1) で,右下隅は (24, 80) になっている.

あぁ,80×25 な端末ってありましたね.メインフレーム時代にはお世話になりっぱなしでしたよ.
でもでも,もう時代が違いますよ?

では使用例を写経しませう.

cursor_home :-
	cursor(1, 1).

cursor/2 を使った述語の定義のみ.
試しに使ってみますか.

4 ?- cursor_home.
1f

Yes

予想通り.(^^;
制御コードが文字として表示されて終わりです.だめじゃん...


Prolog 写経記 その 78 erase/2

(ほぼ) 毎日淡々と Prolog を写経します.元ネタはこちら.

Prologユーティリティライブラリ

Prologユーティリティライブラリ

続けて erase/2 を写経します.

解説

erase(Entity, Part) は画面のある部分を消去する.Entityscreenline であり,Part はカーソルの現在位置に関する fromto あるいは 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 ?- 

うーみゅ...
残念ながら行の消去は対応していないようです.
って,全然残念って気がしませんが.どうでっもいぃでっすよ♪


出演予定 TV 番組

この近辺 (どこ?) で話題のモデルが出演するテレビ番組を分かるだけ掲載します.
新規分は赤字で (レギュラー除く).直近分は太字で.

山田優
10/20 (木) 深夜 00:35〜01:05 CX 「パラダイスキス

優ちゃん,泥棒に入られたそうですね.災難だけど,部屋にいるときに襲われなくてよかったねぇ〜.


CanCam 11 月号 エビちゃんベストセレクション 26

CanCam2005年11月号の蛯原友里ちゃん

CanCam から,お気に入りの蛯原友里ちゃんを紹介しようというこのコーナー.
今日も epudat とのタイアップで「最愛 PINK で始めるスイート・オータム Style 5」から P457 の友里ちゃん.
元の写真が小さめなのでちょっとボケ気味かな?
でもでも,一見甘い表情の中にクリッとした瞳がイイ!!
そんなわけで (どんなわけで?),やっぱり CanCam 買うしか!!