めざましテレビ

今日の早耳ムスメ臼田あさ美ちゃーん,お題は「定番をおさえろ! ファストフード新メニュー」.
またしてもあさ美ちゃんがヘビロテに♪
っていうか,ファストフードってこの前もやったばかりじゃない?
あの時はせっかくのファストフードなのにあさ美ちゃんじゃなくて,1! L! M! って一緒にやれなくて残念な思いをしたわけですが,今回はいかに!?


むぅ... モスバーガーでは M! ポーズなし.まぁ,まだマックがあるからいいか.
むむぅ... ファーストキッチンでも 1! ポーズなし.大丈夫か??
うぬぬぅ... サブウェイってなんだよ!? S! ポーズどころかお店に入るシーンすらなしじゃん!!
ぬおぉぉっ... 終わりかよ!!!!
なんてこった,あさ美ちゃんなのに一緒に 1! も L! も M! もできなかったとは... 無念だ.


っていうか,まこたんといい星海銀さんといい,みんなあさ美ちゃんを心配していて面白い.(^^;
あさ美ちゃん,早く心配されない状態に戻ってねぇ〜.
ともあれ (JW),おでこは出さない方がかわいいんじゃないかなぁ?

スローダンス

うーみゅ...
蛯原友里ちゃんの出番があったことを喜ぶべきなんだろうけど...
なんというか,取って付けたようなとでもいうのか,出番のための出番というか.
あ.
そういえばこのドラマでの雪絵ちゃんは最初からそういう役だった.


それにしても...
このドラマを見るのが辛い...
それなのにそれなのに.
次週の予告にちゃっかり友里ちゃんが!!
ちくしょう,最後まで友里ちゃんで引っ張るつもりだな.
そんな姑息なことをしないで,雪絵ちゃんと英介を主役にすればいいものを.
ぶつぶつぶつ.

Prolog 写経記 その 15 join/3

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

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

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

今日は join/3 を写経します.

解説

join(List1, List2, List)List1List2 各々のリストから順次択一的に要素を取り出し,結合して List にする.

ふむ.Java の場合だと... そのまんまなものはないような.
Perl なんかで配列からマップを作るのに近い感じかなぁ.できあがるのはマップでもなんでもない只野^h^hただのリストだけど.

モード

join(+, +, ?)

お,いつものように逆向きには使えないようですね.ちょっと意外.

定義

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

join([], [], []).
join([X|List1], [Y|List2], [X, Y|List]) :-
	join(List1, List2, List).

ふむ.
まぁ普通にこうなるよなぁという感じ.
でもでも,なぜこれでモードが join(+, +, ?) なのかが分からない...
別に join(?, ?, ?) でも構わないような.例によって,実際は join(+, +, ?) または join(?, ?, +) のどちらかということになりますが.
とりあえず,要チェック.

注記

List1List2 は同じ長さでなければならない.そうでなければ join は失敗する.

ほほー.
特にエラーチェックをしなくてもそうなるわけですか.ちょっといいかも.
なるほどね,長さが同じじゃないと片方のリストが先に空になって,その場合はどの節にもマッチしないというわけですか.ふむふむ.

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

2 ?- join([0, 2, 4, 6], [1, 3, 5, 7], L).

L = [0, 1, 2, 3, 4, 5, 6, 7] 

Yes
3 ?- join([a, b, c], ['A', 'B', 'C', 'D'], Chars).

No
4 ?- join([1], [], [1],).
ERROR: Syntax error: Illegal start of term
ERROR: join([1], [], [1],
ERROR: ** here **
ERROR: ) . 

ぐはぁっ.
っていうか,実は予想通り.
最後の例,文法的に変だよね.そんな変なとこにカンマがあったらおかしいべ.
正しくは

4 ?- join([1], [], [1]).

No

だよね.間違いない.


んで,逆向きに使えないのか検証.

5 ?- join(X, Y, [a, b, c, d]).

X = [a, c]
Y = [b, d] ;

No
6 ?- join(X, Y, [a, b, c]).

No

なんだ,ばっちり使えてるじゃん!?
うーみゅ,モードの表記に一貫性がないような気のせいが...
まぁいいか.

Logic Programming with Prolog

Logic Programming with Prolog

Logic Programming with Prolog

届いたのでぱらぱらと眺めてみました.
とても薄いです.220 ページ余り.それで 5,645 円は割高な感じがしないでもないですが,気にしない気にしない.
最大の特徴は,多くの Prolog 本と違って AI プログラミングとかパズルを解くとかって内容ではなく,「ふつうの Prolog プログラミング」な雰囲気になっていること.
なんたって,8 クイーンとか出てこない!!
っていうか,ちゃんと Hello World! で始まってる!!
こういう Prolog 本って意外とないんじゃないかなぁ?


目次は次の通り.

  • 1. Getting Started
  • 2. Clauses and Predicates
  • 3. Satisfying Goals
  • 4. Operators and Arithmetic
  • 5. Input and Output
  • 6. Loops
  • 7. Preventing Backtracking
  • 8. Changing the Prolog Database
  • 9. List Processing
  • 10. String Processing
  • 11. More Advanced Features
  • Appendix 1. Built-in Predicates
  • Appendix 2. Built-in Operators
  • Appendix 3. Specimen Solutions to Practical Exercises
  • Appendix 4. Glossary

始めの方ではとにかく Prolog の基本的な構文と動きを説明することに重点を置いているっぽくて好印象.
Java とかしか知らない人が最初に読む Prolog 本としては悪くないのかなぁという感じ.ただし,全体的に説明はあっさり気味.
差分リストなんかは取り上げられていないようなので,そういうのを求める人には不向きかも〜.


本書の Introduction でいくつかの Prolog 処理系が紹介されているのですが,特に目を引いたものをピックアップ.

//www.visual-prolog.com/">Visual Prolog:Basic & Visual Basic の違いと同じくらい,普通の Prolog とは別物っぽい処理系.
でもでも,かなり興味深いです.IDE が使えること,GUI アプリが作れるらしいこと,そしてオブジェクト指向に拡張されているらしいこと.
Prolog の処理系って,どれもコマンドラインベース (GUI アプリのようでターミナルもどきとか) で今風な感じがしないものばかりだと感じていたのですが,これはちょっと違うみたい.
Allegro Common LispProlog 版ってないかなぁと思っていたので (ACL 上で Prolog を実装しているみたいですが),ちょっと興味あり.
//goanna.cs.rmit.edu.au/~winikoff/wp/">W-Prolog:こちらは Prolog のサブセット的な処理系というか実装らしい.
注目は Java で書かれているということ.なので,普通の Java アプリに埋め込んで使えるようです.
このサイトのページにある「Start W-Prolog」ボタンを押すとアプレットから Prolog プログラミングを楽しむことも出来ます.ちゃんと写経本の append/3conc/3 も動いたよ.
他にも Pure Java な実装へのリンクが.要チェック!!

Prolog Programming for Artificial Intelligence

ICSS.Bratko: Prolog Programming f_p3 (3rd Edition) (International Computer Science Series)

ICSS.Bratko: Prolog Programming f_p3 (3rd Edition) (International Computer Science Series)

こちらは重量級.700 ページ弱.貧弱なおいらには持ち歩けません.読むより飾ることが重要なおいらには t-wada メソッドも無理だし (苦笑).
ともあれ (JW),第二版の翻訳と比べると,「Prolog への入門 (isbn:476490165X)」に相当する前半部は大きな違いはなさそう.
第二版はエジンバラ構文なるものだったのが第三版では ISO 準拠になったようですが,その違いがどのくらいのものなのかおいらにはよく分かりません.まだ読んでないし.
一方,「AI プログラミング (isbn:4764902540)」に相当する後半部分はかなり変化している模様.注目は新設された「14. Constraint Logic Programming」か.「19. Inductive Logic Programming」「23. Meta-Programming」も興味津々.
とりあえず,この辺りにたどり着くのはもうちょっと先だなぁ.

Open Multithreaded Transactions & Communicating Sequential Processes

Open Multithreaded Transactions: A Transaction Model for Concurrent Object-Oriented Programming

Open Multithreaded Transactions: A Transaction Model for Concurrent Object-Oriented Programming

少し前に注文した本.その当時の価格は 12,578 円.
現在は 15,360 円.結構お得♪


なんて喜んでいたら,PDF で丸ごと公開されているじゃあーりませんか.
http://jotm.objectweb.org/related/kienzle-thesis.pdf
速攻でキャンセルしましたとも.発送される前に気づいてよかったぁ〜.
とりあえず読むべし.それにしても,何故に Ada??
03:20 追記
Amazon で「1 点在庫あり」になってますね.おいらがキャンセルした分なんだろうなぁ.おそらく,一緒に注文した本のおかげで発送されていなかったのでしょう.危なかったなぁ.


ついでに,「ホーアCSPモデルの理論 (isbn:4621036831)」の原書「Communicating Sequential Processes (isbn:0131532715)」も丸ごと PDF が!!
http://www.usingcsp.com/cspbook.pdf
まぁ,日本語でも読むのが辛いので英語で読む気にはなれませんが.

出演予定 TV 番組

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

臼田あさ美
08/30 (火) 21:15〜22:09 CX 「海猿
桜井裕美
08/30 (火) 22:09〜22:15 CX 「旅美人」

JJ モデルの桜井裕美ちゃんがまたしても「旅美人」に登場.楽しみ♪

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

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

CanCam から,お気に入りの蛯原友里ちゃんを紹介しようというこのコーナー.
今日は「CanCam モデルズ&スタッフ認定済! 秋の新作小物 SUPER HITS ザ★ベスト 100」から P98 の友里ちゃん.
CanCam は JJ に比べると高級ブランドなアイテムが少なめだと思うのですが,この友里ちゃんは全身 FENDIです.
ニットもスカートもバッグも FENDI.中ではチャーム付きブレスがいい感じ.あら,意外とお手頃なお値段で.
と書いておきながら,画像は友里ちゃんの顔アップ.(^^;
そんなわけで (どんなわけで?),やっぱり CanCam 買うしか!!