Prolog でまったり
■ このスレッドは過去ログ倉庫に格納されています
0001人工無能
NGNGそんなPrologについてまったり話しましょう
0002名無し娘。
NGNG実際人工知能ってどれくらいのもの作れるの?
0003名無しさん@お腹いっぱい。
NGNG1自身がよく判ってないので終了。
0004(V)o\o(V)
NGNGちなみに、Prologについは全くしりません
0005名無しさん@お腹いっぱい。
NGNG文法すらわからん。
フリーの処理系ありますか?
00062
NGNG1じゃね〜ぞ!!
00072
NGNG0008名無しさん@お腹いっぱい。
NGNGここになにかあるよ。
0009名無しさん@お腹いっぱい。
NGNG0010名無しさん@お腹いっぱい。
NGNG0011名無しさんi486
NGNG0012名無しさんi486
NGNG0013名無しさん@お腹いっぱい。
NGNG歴史とか背景とか
0014名無しさん@お腹いっぱい。
NGNGhttp://www.ifcomputer.com/home_jp.html
とくにここなんかはどう?
http://www.ifcomputer.com/Products/IFProlog/Manuals/v4.1/user_guide/concept/home_en.html
00158
NGNGhttp://www.latech.edu/~acm/helloworld/prolog.html
0016初心者ちゃん
NGNG0017Prolog
NGNG0018名無しさん@お腹いっぱい。
NGNGJAVAの足元にも及ばない位、すごくないです。
0019名無しさん@お腹いっぱい。
NGNGCよりもすごい
00205
NGNGさっそく gprolog インストール中です。
0021名前ついてますか?
NGNGでも Prologって本当につかえるソース見たことないや。
パズル解くぐらいなら書いたけどねえ。
でも ICOTでは Prologマシン作ってたんだっけ?
0022名無しさん@お腹いっぱい。
NGNGと印字するプログラムを教えてください
00235
NGNGmember(X, [X|_]).
member(X, [_|L]) :- member(X, L).
になると 理解できるけど、書けません(x_x)。
こんなの思いつきません(x_x)。
しかし.....楽しい^^)
0024名無しさん@お腹いっぱい。
NGNGそうそう、ユニフィケーションと代入の大きな違いだね。
>>23
リストを先頭と2番目以降に分けて考えるやりかたは、
prolog出現前にlispでしゃぶりつくされた常套手段だから
当たり前のように使えるようになっておくといいよ。
0025名無しさん@お腹いっぱい。
NGNGICOTが作っていたのは非ノイマン型の「第五世代コンピュータ」。
色々な研究が為されて成果もあったけど、結局のところは、
「ノイマン型で高速化・高集積化する方が産業的に成功する」
という現実に叩き潰されたと思う。
0026名無しさん@お腹いっぱい。
NGNGなんかで読んだけど計算機を作ったときに
「俺の次に計算の速い奴が確定した」
とか言ってた話を読んだことがあるけど
0027名無しさん@お腹いっぱい。
NGNG0028名前ついてますか?
NGNGで、調子に乗って quick sortを書くと
qsort([], []).
qsort([X|XS], YS) :-
partition(X, XS, XL, XR), qsort(XL, YL), qsort(XR, YR),
append(YL, [X|YR], XS).
partition と appendは作ってね。
でも appendなんかつくってエレガントじゃないなあ。
差分リストとか使えばかっこよくいくんでしょうか?
0029名前ついてますか?
NGNGってもしかすると KL/1だったっけ。並列 Prologの一種の。
>>26 すごいっす。やつがいなかったら日本は被爆国になってません。
# いや、多分。
0030名無しさん@お腹いっぱい。
NGNGロスアラモスで、エッカート(だったかなぁ)が計算機を、
ファインマンが計算尺をそれぞれ忙しく操作している時、
傍らに座ったノイマンが暗算で最も速く答を出していた、
というようなエピソードが「御冗談でしょうファインマンさん」
に載ってる。
0031名無しさん@お腹いっぱい。
NGNGノイマンが爆縮レンズを考案しなかったら、
核爆弾の完成はかなり遅れただろうね。
0032名無しさん@お腹いっぱい。
NGNGCIAにマークされたかもしれんな。
ヤバイ情報を収集すると特殊機関にマークされるらしい。
これで俺も有名人!!
0033名無しさん@お腹いっぱい。
NGNG0034名無しさん@お腹いっぱい。
NGNG0035名無しさん@お腹いっぱい。
NGNGずらいのかな
0036デフォルトの名無しさん
NGNGmember(_, []) :- false.
member(Ans, [Ans|Tail]).
member(Ans, [_|Tail]) :- member(Ans, Tail).
bool member(const vector<int>& vec, const int ans)
{
for (vector<int>::iterator it=vec.begin(); it!=vec.end(); it++) {
if (*it == ans)
return true;
}
return false;
}Prologならmember判定できるだけでなく
?- member(X, [1,2,3,4,5]).
のようにすると
X = 1;
X = 2;
X = 3;
X = 4;
X = 5;
のようにmemberを一つ一つ取り出す事ができる。
0037デフォルトの名無しさん
NGNGそれだけじゃ、で?って感じだけど...
もっとPrologならではっての無いの?
0038デフォルトの名無しさん
NGNGPrologで解答をお願いします。
0039デフォルトの名無しさん
NGNG0040デフォルトの名無しさん
NGNG0041デフォルトの名無しさん
NGNGPrologの特徴を十二分に表現してると思うけど。
0042デフォルトの名無しさん
NGNGちなみに、36さんの奴をcにするとどうなるの?
0043デフォルトの名無しさん
NGNG0044デフォルトの名無しさん
NGNGPrologでは関係の記述がプログラミング。
命令の記述とは(全てではないが)データの流れの制御。
Prologではデータの流れは結果として起こる事でありプログラムがデータの流れを記述しているわけではない。
そのためmemberのようにある変数が入力ともなり得るし出力ともなり得る。
0045名無しさん@
NGNGhttp://www.lpa.co.uk/ppp.htm
0046名前ついてますか
NGNGalgorithmを書かないようにしてみたけど、当然実用的ではない。(O(n!))
% sortの定義
% Xの bsortが Yであるとは、Yが Xの並び替えで、かつ Yが整列しているとき。
bsort(X, Y) :- permutation(X, Y), sorted(Y).
% permutation(並び替え)
% Yが Xの並び替えであるとは
permutation([], []).
permutation([X|Xs], Y) :- permutation(Xs, Ys), insert(X, Ys, Y).
insert(X, Ys, [X|Ys]).
insert(X, [Y|Ys], [Y|Yss]) :- insert(X, Ys, Yss).
% sorted(整列?)
% Yが整列しているとは、その先頭の 2つが順になっていて、
% かつ、先頭を除いた残りも整列になっているとき
sorted([]).
sorted([X]).
sorted([X0, X1|Xs]) :- X0 =< X1, sorted([X1|Xs]).
0047デフォルトの名無しさん
NGNGう〜む。なにか、人間の言葉みたいだけど、
なぜだかかえってわかりにくいな・・・
0048デフォルトの名無しさん
NGNG同意します。
頭がそっちに入ってる時には非常に分かりやすく感じるんだけど、突然見せられるとなかなか難解。
このあたりがPrologが普及しなかった(すでに過去形・・・)最大の理由だと思う。
結局人間にとっては手続き的思考の方が容易という事なのであろうか。
0049デフォルトの名無しさん
NGNG0050名前ついてますか?
NGNGでも実はそれじゃ使い物にならなくて (46の sortみたいな)
動作に依存した手続き的な書き方をしなきゃいけない場面も多くて。
そこらへんの切り替えが慣れないと大変なのかなあ。と思いました。
0051Pure Cer
NGNGなななな、何をやってるのかさっぱりわからない。
0052デフォルトの名無しさん
NGNGHPを知ってるかた居ませんでしょうか?
0053デフォルトの名無しさん
NGNG0054デフォルトの名無しさん
NGNGこういう問題のことです、はい。
0055デフォルトの名無しさん
NGNGHP教えてクレクレタコら
0056デフォルトの名無しさん
NGNG0057タケ
NGNGともかく「性質」をならべるだけでいいのだから。
・大量のデータをファクトで置いとくときの
探索は非常に強力
・手続き的な部分が必要な場合、例えば、
解を複数出したくないときは!をどうしても
使わないといけない。
・ある述語が必ず成功するのか、失敗することも
あるのかを考えないといけない。
・他の手続き的言語とうまく組み合わせることが大事
なんじゃないかなあ。
以上!!
0058デフォルトの名無しさん
NGNG0059デフォルトの名無しさん
NGNG0060デフォルトの名無しさん
NGNG8QUEEN のことか?
http://www.geocities.co.jp/SiliconValley-Oakland/1680/prolog/prolog12.html
0061デフォルトの名無しさん
NGNGつーかプログラムか?あれ?SQLの方が
近いのではないかしらん。
0062>61
NGNG使い道おしえてくれ
0063デフォルトの名無しさん
NGNG第五世代コンピュータの開発に用いられたらしいですけど・・・
0064デフォルトの名無しさん
NGNG0065デフォルトの名無しさん
NGNG0066デフォルトの名無しさん
NGNG言葉の意味をおせーてくれ!たのむ!!
0067デフォルトの名無しさん
NGNGタイショウ率 R(Y,X) :- R(X,Y).
水位率 R(X,Z) :- R(X,Y),R(Y,Z).
かな〜
0068デフォルトの名無しさん
NGNG0069デフォルトの名無しさん
NGNG0070デフォルトの名無しさん
NGNGそのまま書けばいいんでない?処理系によるけど。
0071デフォルトの名無しさん
NGNG0072関数型牽制揚げ
NGNG0073デフォルトの名無しさん
NGNG0074デフォルトの名無しさん
NGNGUNIX版では結構あるんですけど、、、
0075デフォルトの名無しさん
NGNGwindowsに移植するってのは?
(ひょっとするとcygwin環境でそのままコンパイルできるかもしれないし。)
あとは、日本語に対応したlispやschemeの上で使うとか。
scheme上で動くのはschelogってのがあった様な。
0076デフォルトの名無しさん
NGNGレスありがとうございます。
基本的に初心者にも簡単に使用できるシステムを考えているもので、
cygwinでの動作はシステムの趣旨から反してしまうので、、、
せっかく教えていただいたのに、自分勝手ですみません。
schelogは知りませんでした。
調べてみようと思います。
0077デフォルトの名無しさん
NGNG0078デフォルトの名無しさん
NGNG0079デフォルトの名無しさん
NGNG0080デフォルトの名無しさん
NGNG0081デフォルトの名無しさん
NGNG0082デフォルトの名無しさん
NGNGhttp://www.cs.rice.edu/CS/PLT/packages/schelog/
0084
NGNG0085デフォルトの名無しさん
NGNGって可能?
0086デフォルトの名無しさん
NGNGPlorog
Soralis
て間違えそうだな。
きをつけないと!
0087デフォルトの名無しさん
NGNGOOですか?
試してみれば?
008885
NGNGObject Prolog もできないかな〜ってことです。
0089デフォルトの名無しさん
NGNG0090デフォルトの名無しさん
NGNG009185
NGNG0092デフォルトの名無しさん
NGNG0093デフォルトの名無しさん
NGNG大丈夫だったか?その卒研。
0094デフォルトの名無しさん
NGNGObjectごとに「それぞれ違う論理」を学習していき、
最終的にObject同士の対話が成り立たなくなる、
バベルの塔のようなシステムっすか?(藁
009585
NGNGおっしゃるとおり卒研ボロボロでした。
どうも失礼しました
0096デフォルトの名無しさん
NGNGそれ素敵ですねw
0097デフォルトの名無しさん
NGNG本読まされて、所属研究室で開発したソフトのマンマシン部分にPrologイン
タプリタをC言語で組み込むっていうのをやったんだけど、その時読んだ本
が思い出せない…
なんとかウォーレンとかいう人の書いた本(もちろん洋書)なんだけど…
原始的な処理系の実装から始めて、高速化、最適化、バイトコード化していく
という内容なんだけど。誰か、いま読んでる人いない!?
0098デフォルトの名無しさん
NGNG0099デフォルトの名無しさん
NGNG0100デフォルトの名無しさん
NGNG0101デフォルトの名無しさん
NGNGSQLとは次元が異なる
SQLみたいなのは、帰納的って事だろうね
■ このスレッドは過去ログ倉庫に格納されています