1 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 20:23:54 ] 過去スレ Prologでまったり Part3 pc11.2ch.net/test/read.cgi/tech/1193354806/ PrologでまったりPart 2 pc11.2ch.net/test/read.cgi/tech/1102664221/ Prolog でまったり pc5.2ch.net/test/read.cgi/tech/976462999/ リンク集 www.summa.jp/lang/logic/prolog.htm bach.istc.kobe-u.ac.jp/prolog/ チュートリアル www.amzi.com/AdventureInProlog/ computing.unn.ac.uk/staff/cgpb4/prologbook/ www.intranet.csupomona.edu/~jrfisher/www/prolog_tutorial/pt_framer.html bach.istc.kobe-u.ac.jp/prolog/intro/ www.geocities.jp/m_hiroi/prolog/ www.asahi-net.or.jp/~JF1T-YSD/prologV2/
72 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 18:27:23 ] >>67 ちょっとソース見たけど、ncursesがなかった場合に対応できるような感じではなかったから、 どのみちncursesを入れなきゃダメなんだろうね
73 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 10:25:12 ] >>72 ncurses.hは Kbuntu Ubuntu にはなくて、私がすぐ手に入るのは、 FC5のncurses.hディレクトリなんだけど、これをコピーすれぱいいのかな? やってみよう。
74 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 14:17:57 ] ディレクトリはncurses.h ではなくてncursesだった。続いて、 readlineディレクトリが無いときた。これもコピーと・・・
75 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 14:29:17 ] c++ -g -O2 -o descartes pl.o pllex.o unify.o bin_node.o gc.o var.o \ pred.o syserr.o builtin.o expression.o context.o module.o let.o regex.o \ token.o func.o timeout.o utf8.o euc.o sjis.o code.o help.o mkstemp.o \ cwd.o sysmodule.o format.o sleep.o complx.o lisp.o compiler.o matrix.o \ ncurlib.o lib_include.o opcall.o syserr.o: In function `syserr(char*, ...)': /home/k1/descartes/syserr.c:59: undefined reference to `endwin' sysmodule.o: In function `GetlineEval()': /home/k1/descartes/sysmodule.c:2409: undefined reference to `readline' /home/k1/descartes/sysmodule.c:2411: undefined reference to `add_history' sysmodule.o: In function `GetLine(Context*, Node*, List*)': 以下、大量にエラーがでて撃沈。
76 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 14:47:45 ] 何か無茶苦茶やってませんかw とりあえず綴りは「Kbuntu」じゃなくて「Kubuntu」みたいですね 使ったことないけど ubuntuforums.org/showthread.php?t=296224 > Re: install curses/ncurses > sudo apt-get install build-essentials > sudo apt-get install libncurses5-dev こんな情報が
77 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 14:49:52 ] てゆーかもうさすがにスレ違いかと
78 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 16:01:17 ] >>77 デカルトさんまたねw
79 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 16:32:46 ] slashdot.jp/interview/09/05/11/0445205.shtml こっちのページの方が面白そうだよ 作者も降臨してるし
80 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 17:19:06 ] デカルト言語のキーワードの一つは「オレオレ」かな
81 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 17:20:16 ] オレ惟ふ故にオレオレ
82 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 20:15:19 ] ttp://lists.sourceforge.jp/mailman/archives/descartes-developer/2009-May/000012.html > 次のPrologのプログラムはDecartes > ではどのように書けばよいのでしょうか。 > > factorial(0,1). (以下略) sourceforge.jp/projects/descartes/wiki/ManGrammar ここによると、 ・is/2にあたるのは、<let #変数名 = 式>、<#変数名 = 式>など ・(<)/2など、数値の関係を与える式の評価は、<compare 式>など ・ただし、扱う数値の型によって述語を使い分ける必要がある(letf、letc、comparef) みたいな感じ?要はLispで適当にマクロを組んだ感じかな
83 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 20:23:39 ] しばらく読んでみたけど、結局、 sourceforge.jp/projects/descartes/wiki/ManBuiltin X+b = a+Y という単純なマッチングを普通に書く方法が見つからないww
84 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 08:29:52 ] :- op(850,xfx,>>). ?- もう少し本格的な生成文法でなんとかならないの >>76 .
85 名前:84 mailto:sage [2009/05/17(日) 08:31:59 ] 誤爆です。こっちへ書くつもりだった。 pc12.2ch.net/test/read.cgi/tech/1179157784/
86 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 09:13:13 ] >>85 閑してますねw
87 名前:デフォルトの名無しさん mailto:sage [2009/05/18(月) 19:50:12 ] 学生さん! どなたかこの本、邦訳してくださらないか。 "Building Expert Systems in Prolog" Dennis Merritt著 1989年 Springer-Verlag ISBN 0-387-97016-9
88 名前:デフォルトの名無しさん mailto:sage [2009/05/19(火) 00:11:34 ] >>87 エキスパートシステムって、実用化までたどり着けなかったシステムと 聞いてますけど、いまさら翻訳する意味あるんですか。
89 名前:デフォルトの名無しさん mailto:sage [2009/05/19(火) 02:38:11 ] 駅スパアトなら使ってるけど?
90 名前:デフォルトの名無しさん mailto:sage [2009/05/19(火) 04:35:33 ] >>88 金字塔的な書籍は何でも読みたい。 ロジカルアプローチは世界的に再評価の時期に入っているから、 読み直しの要求は出てくるよ。
91 名前:デフォルトの名無しさん mailto:sage [2009/05/19(火) 05:19:32 ] >>88 エキスパートシステムは漸く事業化の時期に来たのではないか。 20年(一世代)待ったということになる。 エージェントアプローチ + エキスパートシステムでリプレース できるアプリケーションは無限にあるよ。
92 名前:デフォルトの名無しさん mailto:sage [2009/05/19(火) 06:59:08 ] 比較的最近"眺めた"本で翻訳して欲しいなぁと思った本を列挙。 "Towards Putting Abstract Interpretation of Prolog into Practice" F.Gobert著 2008 年 VDM Verlag ISDN:978-3-8364-8858-7 "Clause and Effect" --Prolog Programming for the Working Programmer-- William F.Clocksin著 1997年 Springer Verlag ISBN:3-540-62971-8 "Intelligent Image Processing in Prolog" Bruce Batchelor著 1991年 Springer-Verlag ISBN:3-540-19647-1 (この本は初心者言語スレで 紹介したところ何故か罵倒された) "AI Algorithms, Data Structures, and Idioms in Prolog,Lisp, and Java" George F.Luger William A.Stubblefield共著 2009年 Addison Wesley ISBN-13:978-0-13-607047-4 (この本はAI携帯スレで紹介した)
93 名前:デフォルトの名無しさん mailto:sage [2009/05/19(火) 09:32:23 ] 三重野博司著の「人事情報エキスパートシステム」という本に210くらいの 質問事例が載っています。ほとんど揺らぎとでも表現したいくらいの微妙な 差異のif-thenルールを積み重ねているのですが大変参考になりました。 それで感じたのはエキスパートシステムを能率よく構築するためには 質問文やif-thenルールの自動生成が欠かせないのではないか、という ことでした。
94 名前:93 mailto:sage [2009/05/19(火) 09:49:21 ] 210くらいのif-thenルールが載っています。 でした・・
95 名前:デフォルトの名無しさん mailto:sage [2009/05/19(火) 09:51:34 ] オントロジーは?
96 名前:デフォルトの名無しさん mailto:sage [2009/05/19(火) 10:17:05 ] オントロロロギッタンディスカー
97 名前:デフォルトの名無しさん mailto:sage [2009/05/19(火) 23:45:46 ] blog.livedoor.jp/heitatta/archives/65113337.html > もともと大学で Lisp を少しやっていたので、() をカッコ、コッカと読む習慣は持っているのだが、 > [] をギッコン、ガッコンと読まれて面喰らった。そーか、そう読むのか。 mjd?
98 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 01:04:31 ] www-ksl.stanford.edu/kst/what-is-an-ontology.html
99 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 05:01:56 ] >>93 最初に言語のクラスを定義しておいて、組み合わせで 文を生成していくというようなことかな。 エキスパートシステムにそういう部分が必須であると いう意味ですか? 言語クラスの定義、辞書の定義まで、すべてのアプリ ケーションのリプレースに必要とまでの主張だとすると 多少はオントロジーとも無関係ではないかもしれないw
100 名前:デフォルトの名無しさん [2009/05/20(水) 05:29:18 ] Prologって今から思えても意味ありますか? 特技みたいに思ってもらえたりするでしょうか?
101 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 05:40:22 ] >>100 思えても→覚えても でした
102 名前:デフォルトの名無しさん [2009/05/20(水) 07:14:59 ] >>100 これからがPrologの時代です。
103 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 07:23:08 ] >>100 私がPrologを使うのは生産性が高いからですよ。 それ以外のことは、まあどうでもいいです。
104 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 09:09:18 ] >>100 あなたが、今プログラミングをしたことのない60才だとします。 "Prolog以外"のプログラム言語をこれから覚えて使いこなすのは 不可能といっていいでしょう。これが答えです。
105 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 09:47:05 ] Prolog始まっ・・・そんなものはとっくに始まってるさ
106 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 10:02:14 ] 企業経営という観点からいうと、 反射的にコストを考えてしまう社員は要らない。反利速的な経営の 基礎となる情報システムは記号処理言語を基礎に上層を築き直さな くてはならない。Prologをアセンブラとして使う。 is/2には死んでもらうw
107 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 10:22:46 ] >>106 経路問題だけで業務ソフト作るのは難しいよw
108 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 10:23:52 ] www.cyc.com/
109 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 10:28:06 ] リンクだけ張っても仕方ない。
110 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 14:21:04 ] SWI-PrologでIF/Prologのparse_atom/2のような事を行いたいのですが、 どのようにすれば良いかご存知の方いらっしゃいませんか。
111 名前:110 mailto:sage [2009/05/20(水) 14:29:57 ] 補足です。 やろうとしている(というか移植しようとしている)内容を簡単に書くと do_all:- (rule->
112 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 14:30:21 ] >>110 ?- atom_to_term('append([1],[2],L).',X,Y). X = append([1], [2], _G261) Y = ['L'=_G261]
113 名前:110 mailto:sage [2009/05/20(水) 14:35:42 ] 途中で送信してしまいました、すいません。 do_all:- data(D), ( rule(D)-> true; create_rule(D,R_str), parse_atom(R_str,R), assertz((R)) ), fail;true. あるデータセットを処理可能なルールが既にあれば良し、 なければ新しいルールを作って追加、 という内容です。 何卒よろしくお願いします。
114 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 14:44:17 ] >>113 create_rule/2 でなぜ直接Rを生成しないのか疑問ですが。
115 名前:110 mailto:sage [2009/05/20(水) 14:45:05 ] >>112 さま できました! ありがとうございます!
116 名前:110 mailto:sage [2009/05/20(水) 14:54:25 ] >>114 さま すいません、直接ルールを生成するというのはどのようなことなのでしょうか。 今のところは文字列処理でルール文を生成しています。 ほとんど独学なのでPrologの事は知っているようでよくわからなかったりします・・
117 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 15:36:16 ] data(筋肉は使い過ぎると傷害を起こす) だとします。 この文を解析して 筋肉,使い過ぎ,傷害を起こす という要素を得て、 ?- ... create_rule(_文,'筋肉(使い過ぎ,障害を起こす)'), ... 生成できたのだとすると, ?- ... create_rule(_文,筋肉(使い過ぎ,障害を起こす)), ... を直接生成できるのではないか。
118 名前:110 mailto:sage [2009/05/20(水) 17:51:16 ] >>117 さま string(atom)で返しているのは、assert以外に、ルール文をファイル保存等、 テキスト処理を行いたいため、そのようになっています。 ※ parse_atom/2には直接関係無いため、記述を省略しておりました。 わかりにくくて申し訳ありません。 ruleの直接生成については、ご指摘の通りだと思います。 ただ、create_ruleでは複雑な処理を行っているのので、 今回は無理をせずにatom_to_termで行きたいと思います。 ご指摘ありがとうございました。
119 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 18:02:30 ] >>118 そうでしょうね。項とともにテキストの生成を意識することは よい設計だと思います。あなたはご存知だと思いますが、 ruleの生成で私が書いた述語らしからぬ筋肉という関数の部分に 変数がくる、つまりその文によってここを変化させたい場合は、 functor/3,arg/3 または (=..)/2 を使います。メタ述語ですね。
120 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 18:43:14 ] >>106 反利速的な経営ってどういう意味?
121 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 19:45:17 ] >>120 利速的とは、売上、利益の伸び率などが今どういう傾向に 微分的に変化しつつあるかについて、もっとも注視すること。 反利速的ですから、計量的微分的な量りから遠ざかる、 そういうことに囚われない経営態度。
122 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 00:59:44 ] 初心者のプログラミング言語ガイドスレで見て来ました。 ーー文化と実践ーーっていう本が薦められていて探してみようと思います。 処理系はSWI-Prologで良いですか? というか、処理系によって言語仕様(でいいのかな)とかが違ったりするのでしょうか?
123 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 01:08:27 ] ttp://www.geocities.jp/m_hiroi/prolog/prolog01.html ここやってるんですけど、 ?- like(taro, coffee). YES ってなるはずが自分の場合は ?- like(taro, coffee). true. と表示されるんですけど何ででしょうか? SWI-Prolog (Multi-threaded, 32 bits, Version 5.6.64)使用しています。 初心者質問申し訳ないです。
124 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 04:02:55 ] >>122 すみません。--文化とその実践-- でした。あちらのスレでも訂正をしておきました。 処理系はSWI-Prologで十分でしょう。Prologは残念ながら、処理系によっての差が かなりあります。しかし、1995年にISO規格が制定されて、少なくとも各処理系が この述語群は共通にサポートする方向ですから、できるだけこの規格に沿った述語を 選択して利用する方がよいでしょう。
125 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 04:11:05 ] >>123 ここの前スレで紹介があったのですが、 SWI-Prologは比較的最近のバージョンからYES ではなく true. と 表示されるようになりました。trueの後のピリオドにも注目です。 これで、実行ログが完全に項としてreadできるようになりました。 一時的な思いつきなのか永久にこの仕様になったのか分からない のですが、多くのPrologプログラマは好意的に受け止めています。
126 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 11:54:03 ] この言語将来性なさそう・・・大丈夫か?
127 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 12:06:15 ] >>126 どういう理由で?
128 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 12:14:26 ] >>126 ほとんどのプログラム言語が死に絶えた時に最期まで生き残っているのが論理型言語なのさ。Prologであるとは言わないけど。
129 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 12:28:22 ] >>128 平行論理型。それが機械語。
130 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 12:32:58 ] 機械語なんていわれるとピンとこないなぁ。
131 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 14:21:54 ] James L. Hein;Prolog Experiments in Discrete Mathematics,Logic, and Computability が公開されてるのをみつけた。
132 名前:デフォルトの名無しさん [2009/05/21(木) 16:11:33 ] >>129 何を言いたいのかよくわからないけどせめて「並行」と書いてくれ。
133 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 16:21:10 ] 第五世代ではKL1が機械語という位置づけだったんだっけ?
134 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 17:29:47 ] このスレってさ、まったりとか描いてる割には内容が高度すぎて読む気に慣れねーわ。 つーか、読んでも意味ワカンネーし。 やる気無くなるし。
135 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 17:37:06 ] 狙いとしてはどうかしらないけど、プロトタイプシステムとやらではちゃんとコンパイルしてるみたいよ www.icot.or.jp/AITEC/Publications/TRTM/2/tm0875/003.html PrologのWAMにあたるKL1-Bといったものもあるらしい
136 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 17:40:21 ] >>134 すまん、漏れが親しみやすいトリビア集めをさぼっているばかりに…
137 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 17:48:51 ] 「WAMにあたる」じゃないな WAMコード、WAMの機械語にあたる、か
138 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 18:11:16 ] 平行論理世界へようこそ
139 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 18:12:05 ] つーことは>>129 の「それが機械語」は言い過ぎかな WAMの命令セットが論理型言語と言えるならKL1-Bも並行論理型言語で それが(仮想機械の)機械語と言えるかもしれんが
140 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 19:47:50 ] 将来ロボットが出現するだろうから、それらをプログラムする言語はPrologになるってことか。 それなら納得した。
141 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 20:52:38 ] >>140 20世紀は石油。 21世紀はロボットの世紀だからね。
142 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 20:55:43 ] 当面、情報家電のUIはPrologインタプリタでなくちゃいけないのだが・・・
143 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 21:01:04 ] >>142 JAVAでもしょうがないとは思うがPrologの項をparse_atomできる 関数をライブラリに持っていて欲しい。
144 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 21:52:21 ] >>134 だから第五世代計画は失敗した、という面もある。
145 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 22:12:17 ] この言語でプログラミングやるんだったらPython始めた方が良いよ
146 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 22:17:40 ] じゃあ君はPythonやればいい。
147 名前:デフォルトの名無しさん [2009/05/21(木) 23:34:31 ] 僕は、 KL-1 が素晴らしいと思ったので、今、勉強中です。
148 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 00:55:07 ] PythonとPrologって、主にどうちがうんですか?
149 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 01:36:28 ] >>148 Pで始まるところ以外全部
150 名前:デフォルトの名無しさん [2009/05/22(金) 02:39:04 ] Pythonってjavaの代わりって感じ?
151 名前:Prolog工作員 mailto:sage [2009/05/22(金) 06:57:46 ] >>148 pc12.2ch.net/test/read.cgi/tech/1242876647/3 Pythonの解答と見較べれば、まったく違うことがわかる。
152 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 00:02:52 ] >>124 その本、あちらのスレでは在庫無しと書いてらっしゃいましたが、 まだ流通あるようですよ。ヤフオクの7アンドYでポチりました。
153 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 11:39:14 ] >>152 ありがとう。まだ大丈夫でしたか。 私は用心に去年二冊目を買いました。人に貸せるように。 Prologの本は昨年の赤間さんの本以外はいつ絶版になっても しかたがないというのが多くて・・・
154 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 09:40:24 ] >>95 突然、ミケランジェロがでてきたような感じなんだよね。
155 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 21:14:18 ] 最初に読んだPrologの本が中島秀之先生の本だった影響で 今でもProlog/KRに愛着があります。GCLで動かしています。 S式が扱えるPrologが好きです。
156 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 22:28:37 ] >>147 正式には"KL1"なんじゃないかな。 www.icot.or.jp/ARCHIVE/Museum/TRTM/tr-list-J.html www.icot.or.jp/ARCHIVE/Free-Software/Free-Software-J.html
157 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 23:02:41 ] >>153 今日届きました。最初の連言標準形・・・あたりから既に付いていけてない・・・T_T
158 名前:デフォルトの名無しさん [2009/05/25(月) 11:41:23 ] prologで微分する述語を作ったんだが x^(-1) を微分すると -1*x^ -2*1 と括弧が外れてしまう せめて -1*x^(-2)*1 くらいは括弧が欲しい どうやら x^ -1 と単一化されるのが原因らしい 微分述語を定義するときに括弧をつけても外されてしまう これって回避する方法って無いの?
159 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 15:50:50 ] >>158 > どうやら x^ -1 と単一化されるのが原因らしい このへんがちょっとよくわからない
160 名前:デフォルトの名無しさん [2009/05/25(月) 18:26:57 ] >>159 例えば test((A),((A))). という述語を定義しても listing. すると test(A,A). になります 括弧を記号と考えて処理する方法は無いの?
161 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 20:13:31 ] >>160 なるほど。それは実は面白いかも。 もし仮に「冗長な括弧は、主関数子を'()'/1とする複合項を構成する」みたいなルールを決めるなら… 1 + (2 + 3) = +(1, +(2, 3)) 1 + 2 + 3 = +(+(1, 2), 3) 1 + ((2 + 3)) = +(1, ()(+(2, 3))) (1 + 2) + 3 = +(()(+(1, 2)), 3) こんな楽しいPrologが…!たぶん使うのが難しいと思うけどw
162 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 20:17:18 ] >>160 えーとつまり、括弧をデータとして扱うことの問題点は感じてもらえるのでは
163 名前:デフォルトの名無しさん [2009/05/25(月) 22:06:50 ] 再起処理で一番上流だけを求めるってできる?
164 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 07:41:44 ] >>163 一番上流というと?
165 名前:デフォルトの名無しさん [2009/05/26(火) 07:59:25 ] >>164 up(a,b).up(b,c),up(c,d).up(d,e).のとき top(X,e).と聞くとX=aだけを返すようなプログラムができる?
166 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 08:28:35 ] 後戻りを再起処理と言っていたのかw エスパーの勉強になった
167 名前:166 mailto:sage [2009/05/26(火) 08:31:58 ] おっとすまん、勘違いだったようだ
168 名前:166 mailto:sage [2009/05/26(火) 08:37:29 ] >>165 aの特徴は、\+ up(_,a)というところだよね そのへんが切り口なのでは
169 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 08:48:17 ] >>165 top(Top,End) :- up(A,End),top(Top,A). top(Top,Top) :- up(Top,_).
170 名前:169 mailto:sage [2009/05/26(火) 08:51:19 ] なるほど、これだとだめなのか。
171 名前:169 mailto:sage [2009/05/26(火) 08:53:18 ] top(Top,End) :- up(A,End),top(Top,A),!. top(Top,Top) :- up(Top,_). かな。
172 名前:169 mailto:sage [2009/05/26(火) 09:14:07 ] top(Top,Top) :- up(Top,_),not(up(_,Top)). top(Top,End) :- up(A,End),top(Top,A). 確かにこの方がよい。