めざましテレビ

今日の早耳ムスメはジュリアナちゃん,お題は「早耳ムスメのハマりもの!! ジュリアナ ver.」.
このタイトルの 「ver.」 ってずっと付けるのかなぁ?
いやね,ジュリアナちゃんはいいですよ.なんたって最年少 17 歳らしいし.見えないけど.
でもね...
あのお方,どうしてもちゃん付けで呼ばれないあの人がいるじゃないですか.
そう,みさきゆうさん.
みさきゆうさんのときも付けるんですかねぇ?
早耳ムスメのハマりもの!! みさきゆう ver.」
なんとなく,いやな響きのような気のせいが...
気のせいかなぁ?

Prolog 写経記 その 49 agt/2

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

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

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

今日は agt/2 を写経します.

解説

agt(X, Y) はアルファベット順にみて XY より後ろにあるとき成功する.

agt ってぬーらぼのあの人じゃなくて,ASCII の greater than ですね.
Java でいうと... String#compareTo(String) で結果が 0 より大きい (>) みたいな.

モード

agt(+, +).

ふーん.またしても + 二つですか.

定義

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

agt(X, Y) :-
	name(X, L),
	name(Y, M),
	agt_ASCII(L, M).
agt_ASCII([_ | _], []).
agt_ASCII([X | _], [Y | _]) :-
	X > Y, !.
agt_ASCII([H | Q], [H | S]) :-
	agt_ASCII(Q, S).

agt/2 本体は昨日の age/2 と同様,アトムを文字コードのリストにしているだけ.
んで,次の agt_ASCII/2 が事実上の本体.
最初の節は終了条件で.
次の節は二つのリストの最初の文字が異なる場合.第 1 引数の最初の文字 X (の ASCII コード) が第 2 引数の最初の文字 Y (の ASCII コード)よりも大きければ成功.
最後の節は第 1 引数の最初の文字と第 2 引数の最初の文字が等しい場合.その場合は残りの文字を再帰的に調べます.

注記

agt は比較対象がアトムでないときは失敗する.

らじゃあ.
っていうか,SWI-Prolog ではうまくいかないわけですが.

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

2 ?- agt('Word', 'Word').

No
3 ?- agt(predicate, pred).

Yes
4 ?- agt('Jane', 'John').

No
5 ?- agt(-13.7, -13.7).

No

最後の例が写経本の通り No で終わっているのは比較対象がアトムでないからではなく,単に等しいから.
ちゃんちゃん.


お仕事スタイル

  • 黒いコットンのシャツ (DIOR HOMME 04-05AW)
  • 黒いコットンのパンツ (BALENCIAGA 04SS)
  • 黒いスエード+ナイロン・メッシュのスニーカー (sergio rossi 04SS)

DIOR HOMME のシャツは胸ポケットのフラップがウェスタン調にカットされているもの.
ウェスタンがトレンドだった昨年だけのモノかと思いきや,定番もの?
バーニーズでは普通に売ってました.色違い (白) も買っておこうかなぁ.


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

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

CanCam から,お気に入りの蛯原友里ちゃんを紹介しようというこのコーナー.
今日は「愛が生まれる バーティ服!」から P145 の友里ちゃん.
えぇ.いつものようにかわいい友里ちゃんですとも.
ちなみに友里ちゃんが着ているワンピース,ついこの間のセレクションと同じじゃないかな?
その時もラブリ〜でしたがまたしてもラブリ〜.
そんなわけで (どんなわけで?),やっぱり CanCam 買うしか!!