Prolog初心者のスレ
これは良い言語だ…
探検
【論理】Prolog【初心者】
レス数が950を超えています。1000を超えると書き込みができなくなります。
1デフォルトの名無しさん
2010/11/06(土) 13:00:56873デフォルトの名無しさん
2017/02/16(木) 11:41:51.71ID:sX4bqSJb 何で急にprolog流行り出したの?
874870
2017/02/16(木) 12:18:29.03ID:wak87cl1 >>873
自分はProlog大好きなのですが全然流行っていないような…情報集めもメッチャ苦労しますし…
Prologの基本文法以外の、論文とかでしかあまり目にしない「応用Prolog」みたいな領域があって「日本ではあまり目立たなかったけど実は少しづつ進化していた」というのはあると思います。
日本語で目にするPrologの基本文法レベルの情報と外国で見つかる応用Prologの情報には大分差があるというのはあると思います。
文法にも大分手が入っている印象です
自分はProlog大好きなのですが全然流行っていないような…情報集めもメッチャ苦労しますし…
Prologの基本文法以外の、論文とかでしかあまり目にしない「応用Prolog」みたいな領域があって「日本ではあまり目立たなかったけど実は少しづつ進化していた」というのはあると思います。
日本語で目にするPrologの基本文法レベルの情報と外国で見つかる応用Prologの情報には大分差があるというのはあると思います。
文法にも大分手が入っている印象です
875デフォルトの名無しさん
2017/02/16(木) 21:41:14.28ID:Ip3bwl24 >>873
どっかの大学で処理系作る演習課題を出したのでは
どっかの大学で処理系作る演習課題を出したのでは
876デフォルトの名無しさん
2017/02/16(木) 23:14:34.57ID:suS7noGe877デフォルトの名無しさん
2017/02/17(金) 00:34:53.19ID:nT+0Ed8G Prologって、第5世代コンピュータをつくるとかいって、ICOTという組織を
作って大々的に研究していたのじゃなかったかな。
ICOTの成果というものは、発表さいているのかしら。
作って大々的に研究していたのじゃなかったかな。
ICOTの成果というものは、発表さいているのかしら。
878デフォルトの名無しさん
2017/02/17(金) 03:22:48.78ID:td9uOFbw 発表されてたはずで、
https://ja.wikipedia.org/wiki/%E7%AC%AC%E4%BA%94%E4%B8%96%E4%BB%A3%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF
の外部リンク
AITEC・ICOTアーカイブス
第五世代コンピュータ プロジェクト アーカイブ
の先にあったのだと思うけど今では 403 Forbidden と 404 Not Found
これは残ってた
第五世代コンピュータ・プロジェクト
最終評価報告書
http://www.jipdec.or.jp/archives/publications/J0005062
https://ja.wikipedia.org/wiki/%E7%AC%AC%E4%BA%94%E4%B8%96%E4%BB%A3%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF
の外部リンク
AITEC・ICOTアーカイブス
第五世代コンピュータ プロジェクト アーカイブ
の先にあったのだと思うけど今では 403 Forbidden と 404 Not Found
これは残ってた
第五世代コンピュータ・プロジェクト
最終評価報告書
http://www.jipdec.or.jp/archives/publications/J0005062
879デフォルトの名無しさん
2017/02/17(金) 05:29:01.81ID:zgDgwzIu >>877-878
プロジェクトの遺産であるKLICはメンテナンスされている。
並行論理プログラミング (KLIC version 3.01)
http://www.ueda.info.waseda.ac.jp/software-j.html
けいえるわん
http://www.ueda.info.waseda.ac.jp/~takagi/kl1/
並列論理型言語処理系 KLIC のページ
http://web.archive.org/web/20100815015107/http://www.klic.org/software/klic/index.ja.html
第五世代コンピュータ プロジェクト アーカイブ
http://web.archive.org/web/20150121033015/http://www.jipdec.or.jp/archives/icot/ARCHIVE/HomePage-J.html
プロジェクトの遺産であるKLICはメンテナンスされている。
並行論理プログラミング (KLIC version 3.01)
http://www.ueda.info.waseda.ac.jp/software-j.html
けいえるわん
http://www.ueda.info.waseda.ac.jp/~takagi/kl1/
並列論理型言語処理系 KLIC のページ
http://web.archive.org/web/20100815015107/http://www.klic.org/software/klic/index.ja.html
第五世代コンピュータ プロジェクト アーカイブ
http://web.archive.org/web/20150121033015/http://www.jipdec.or.jp/archives/icot/ARCHIVE/HomePage-J.html
881デフォルトの名無しさん
2017/02/17(金) 15:48:47.57ID:ovwqcfrF 残念…
https://ja.wikipedia.org/wiki/Prolog
>Prolog にオブジェクト指向プログラミングを取り入れた ESP
(略)
>ESPは多重継承を特徴とする当時としては先鋭のオブジェクト指向言語であった
(略)
>ISO の標準化作業は1987年頃から作業委員会(WG17)が作られ、
>日本委員も情報処理学会から15名ほどがこれに加わった。
(略)
>モジュール仕様については日本委員から、ICOTによって作成された
>ESP(Extended Self-contained Prolog)を以てその標準とする案が出されていたが、
>これは否決された。
https://ja.wikipedia.org/wiki/Prolog
>Prolog にオブジェクト指向プログラミングを取り入れた ESP
(略)
>ESPは多重継承を特徴とする当時としては先鋭のオブジェクト指向言語であった
(略)
>ISO の標準化作業は1987年頃から作業委員会(WG17)が作られ、
>日本委員も情報処理学会から15名ほどがこれに加わった。
(略)
>モジュール仕様については日本委員から、ICOTによって作成された
>ESP(Extended Self-contained Prolog)を以てその標準とする案が出されていたが、
>これは否決された。
882デフォルトの名無しさん
2017/03/08(水) 01:37:14.82ID:FH5JSwpU http://qiita.com/ShunIchikawa/items/6449f492dc38a7201162
pepperの頭脳がprologで書かれていたなんて
pepperの頭脳がprologで書かれていたなんて
883デフォルトの名無しさん
2017/03/20(月) 14:40:29.09ID:D+qAvvKH884デフォルトの名無しさん
2017/03/21(火) 02:02:37.80ID:1B8bXLyp 今のままでは、小学校のプログラミング教育にScratchが導入されてしまう。
Prologを推すことができるように、
小学生の目線で書いたPrologプログラムを増やそう。
Prologを推すことができるように、
小学生の目線で書いたPrologプログラムを増やそう。
885デフォルトの名無しさん
2017/03/21(火) 02:08:37.78ID:1B8bXLyp 基本的な方針としては、
道具立てなく、現在の授業科目の中ですぐに利用できるプログラム言語で
あることを武器として、広めていく。
もちろん、環境整備は必要だし、Prologの言語仕様の一部変更も必要には
なるだろう。
道具立てなく、現在の授業科目の中ですぐに利用できるプログラム言語で
あることを武器として、広めていく。
もちろん、環境整備は必要だし、Prologの言語仕様の一部変更も必要には
なるだろう。
886デフォルトの名無しさん
2017/03/25(土) 04:56:52.06ID:GDunSt8n887デフォルトの名無しさん
2017/03/26(日) 18:38:57.42ID:AnJi4Uz+888887
2017/03/26(日) 18:41:31.41ID:AnJi4Uz+ 訂正。
・・・・・・・
それを補う部分の記述が必要。その部分では最有力ということではないか。
・・・・・・・
それを補う部分の記述が必要。その部分では最有力ということではないか。
889デフォルトの名無しさん
2017/03/27(月) 09:23:14.55ID:0S3+JQEx >>886
読み書きしにくいの意味が、データの入出力のことなら別だけれど
プログラムの読みやすさ、書きやすさの意味だとすると、
Prologはもっとも読みやすいプログラム言語のひとつではないか
書く方は、難しいという見方もできるだろうが
読み書きしにくいの意味が、データの入出力のことなら別だけれど
プログラムの読みやすさ、書きやすさの意味だとすると、
Prologはもっとも読みやすいプログラム言語のひとつではないか
書く方は、難しいという見方もできるだろうが
890デフォルトの名無しさん
2017/03/31(金) 12:48:26.56ID:9hE01YVS >>887
その部分では関数型言語も手続型言語もオブジェクト指向が強調されたものでも記述できるが、その記述の簡潔さでは、Prologは一頭地抜けている
その部分では関数型言語も手続型言語もオブジェクト指向が強調されたものでも記述できるが、その記述の簡潔さでは、Prologは一頭地抜けている
891デフォルトの名無しさん
2017/03/31(金) 16:20:13.33ID:Xm1Y4uex892891
2017/03/31(金) 16:21:47.69ID:Xm1Y4uex 「ニューラルネットワーク的AIを統制するためのPrologプログラミング」かな。
893デフォルトの名無しさん
2017/04/09(日) 08:47:47.54ID:w11Bnd9f Emacsでプログラム書いてますか?設定の参考になるサイトとかないでしょうか
894デフォルトの名無しさん
2017/06/15(木) 07:05:22.75ID:OS4b1hKm Prologでデータベース foo/1 の引数値を集約するときに
?- findall(N,foo(N),L),sum_list(N,Sum).
というように書きます。これを
?- findall(Sum_1,(
findnsols(1000,N,foo(N),L1),
sum_list(L1,Sum_1)),L2),
sum_list(L2,Sum).
というように書くとスタックの消費を抑えることがてきます。
?- findall(N,foo(N),L),sum_list(N,Sum).
というように書きます。これを
?- findall(Sum_1,(
findnsols(1000,N,foo(N),L1),
sum_list(L1,Sum_1)),L2),
sum_list(L2,Sum).
というように書くとスタックの消費を抑えることがてきます。
895デフォルトの名無しさん
2017/06/20(火) 18:05:00.63ID:K8Mc93da896デフォルトの名無しさん
2017/06/23(金) 08:01:15.35ID:oZciV1Hy そうそうProlog読み書きしにくいから
基本はPythonメインで
論理プログラムがハマるところに
Prolog使いたいよね
でも連携というかそもそも
Prolog自体の情報が少ない
基本はPythonメインで
論理プログラムがハマるところに
Prolog使いたいよね
でも連携というかそもそも
Prolog自体の情報が少ない
897デフォルトの名無しさん
2017/06/25(日) 17:00:13.26ID:NUFQhX60 人工知能ということになるとPrologは述語論理を担うなどと大仰な
ことになるが、もっと単純に、
自分はこういうことを望む。
これこれのことはするな。
というように比較的単純なしかしどうしても欠かせない情報を
確実に表現するためのもの。Pythonよりさらに簡素な記述系を
最大限に使い込もう。
ことになるが、もっと単純に、
自分はこういうことを望む。
これこれのことはするな。
というように比較的単純なしかしどうしても欠かせない情報を
確実に表現するためのもの。Pythonよりさらに簡素な記述系を
最大限に使い込もう。
898デフォルトの名無しさん
2017/06/27(火) 11:15:02.78ID:TURdRN9F 実行系をさらにその上位で制御するという役割にPrologのようなプログラム言語は当てられてよいはずだが<
案外とそういうコードがない。GeneXusなどもそういう切り口を残すべきだったのだろうけれど、現在のところそうなっていない。
案外とそういうコードがない。GeneXusなどもそういう切り口を残すべきだったのだろうけれど、現在のところそうなっていない。
899デフォルトの名無しさん
2017/06/27(火) 22:09:52.04ID:yIuIIYT1 Prologは宣言型なので
Pythonなどの命令型言語よりさらに高水準だから
システム最上位の制御にふさわしい……
って理屈は分かるけど
実際にはそういう使われ方で普及してないよね?
関数型言語よりもっと簡潔だけどもっと難しいんじゃ
やっぱ日常的に使いにくいんだと思う
Pythonなどの命令型言語よりさらに高水準だから
システム最上位の制御にふさわしい……
って理屈は分かるけど
実際にはそういう使われ方で普及してないよね?
関数型言語よりもっと簡潔だけどもっと難しいんじゃ
やっぱ日常的に使いにくいんだと思う
900デフォルトの名無しさん
2017/07/02(日) 09:20:29.55ID:+SxSuJIi >>899
どこも使い難い点はないような
どこも使い難い点はないような
901デフォルトの名無しさん
2017/07/03(月) 05:36:37.05ID:JEoPVY0x >>900
それ、使い込んだ上での話ですか
それ、使い込んだ上での話ですか
902デフォルトの名無しさん
2017/07/03(月) 07:01:23.77ID:6QSWtKdI >>896
ディープラーニンングは一過性ではなく持続しそうだから今後益々
数値計算依存部分はPytho、シンボル依存部分はPrologの切り分けが
進む。メインはPrologではあるが、スクリプト的なものが多くなる。
ディープラーニンングは一過性ではなく持続しそうだから今後益々
数値計算依存部分はPytho、シンボル依存部分はPrologの切り分けが
進む。メインはPrologではあるが、スクリプト的なものが多くなる。
903デフォルトの名無しさん
2017/08/02(水) 12:14:45.53ID:AyM7Pnm7 >>900
PrologとPythonなどとの連携部分はまだ課題が多い。
単に呼べるというのでは不十分で、「簡単にどのライブラリ間でもいじること無く呼べる」必要がある。
例えば、C++がいま一つ敬遠される理由はこの連携が弱い(ABIが乱立)からだし。
まあこの手の問題は、糊(glue)機能が比較的優れてるLispでも抱えてる問題ではあるが。
PrologとPythonなどとの連携部分はまだ課題が多い。
単に呼べるというのでは不十分で、「簡単にどのライブラリ間でもいじること無く呼べる」必要がある。
例えば、C++がいま一つ敬遠される理由はこの連携が弱い(ABIが乱立)からだし。
まあこの手の問題は、糊(glue)機能が比較的優れてるLispでも抱えてる問題ではあるが。
904デフォルトの名無しさん
2017/11/07(火) 17:33:56.45ID:cG+teg8q 904
905デフォルトの名無しさん
2017/11/07(火) 17:34:27.71ID:cG+teg8q 905
906デフォルトの名無しさん
2017/11/07(火) 17:34:59.61ID:cG+teg8q 906
907デフォルトの名無しさん
2017/11/07(火) 17:35:31.12ID:cG+teg8q 907
908デフォルトの名無しさん
2017/11/07(火) 17:36:01.37ID:cG+teg8q 908
909デフォルトの名無しさん
2017/11/07(火) 17:36:30.51ID:cG+teg8q 909
910デフォルトの名無しさん
2017/11/07(火) 17:37:00.33ID:cG+teg8q 910
911デフォルトの名無しさん
2017/11/07(火) 17:37:34.15ID:cG+teg8q 911
912デフォルトの名無しさん
2017/11/07(火) 17:37:57.03ID:cG+teg8q 912
913デフォルトの名無しさん
2017/11/07(火) 17:38:26.67ID:cG+teg8q 913
914デフォルトの名無しさん
2017/11/07(火) 21:52:44.42ID:Yiwwf3oY 埋め立て荒らし死ね
915デフォルトの名無しさん
2017/11/08(水) 23:59:56.10ID:RoSi+77P916デフォルトの名無しさん
2018/05/23(水) 21:19:05.66ID:Au5e7VGg 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
26K6I
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
26K6I
917デフォルトの名無しさん
2018/07/05(木) 00:38:42.64ID:RfoszcD2 N2H
918デフォルトの名無しさん
2018/07/11(水) 05:18:17.41ID:WcC1XiNM prolog初心者でわからないことあったから来てみたけどもしかして誰もいない?
919デフォルトの名無しさん
2018/07/11(水) 12:16:27.45ID:E99jt7Z3 眠ってなんかいません
920デフォルトの名無しさん
2018/07/11(水) 13:51:36.30ID:wV7UrnIg >918
そのわからないことを質問してみたらいいのじゃないかな
そのわからないことを質問してみたらいいのじゃないかな
921デフォルトの名無しさん
2018/07/12(木) 20:27:33.93ID:G0bLrcU2 >920
構文木を例のように見やすくするプログラムを書きたいんだけどそれがわからなく、
ggっても全然出てこなくて困ってる
例
文(
主語(
名詞句(
名詞句(
名詞(鳥))
主格助詞(は)))
述語(
目的語(
名詞句(
形容詞(白い)
名詞句(
名詞(花))))
対象格助詞(を)
動詞(好む)))
構文木を例のように見やすくするプログラムを書きたいんだけどそれがわからなく、
ggっても全然出てこなくて困ってる
例
文(
主語(
名詞句(
名詞句(
名詞(鳥))
主格助詞(は)))
述語(
目的語(
名詞句(
形容詞(白い)
名詞句(
名詞(花))))
対象格助詞(を)
動詞(好む)))
922デフォルトの名無しさん
2018/07/12(木) 20:29:25.40ID:G0bLrcU2 >921
)の数ミスった
)の数ミスった
923デフォルトの名無しさん
2018/07/12(木) 20:37:01.43ID:G0bLrcU2 >920
連投ごめんなさい 構文木ってのがこれ 構文木じゃなくて構文木を表す項っていうのかな
文(主語(名詞句(名詞(鳥),主格助詞(は))),述語(目的語(名詞句(形容詞(白い)名詞(花)),対象格助詞(を))),動詞(好む))).
連投ごめんなさい 構文木ってのがこれ 構文木じゃなくて構文木を表す項っていうのかな
文(主語(名詞句(名詞(鳥),主格助詞(は))),述語(目的語(名詞句(形容詞(白い)名詞(花)),対象格助詞(を))),動詞(好む))).
924デフォルトの名無しさん
2018/07/14(土) 10:54:39.64ID:v4Gtt50J そんなのggれないやつは向いてない
925デフォルトの名無しさん
2018/08/27(月) 13:27:28.56ID:2QrJXX5D Welcome to SWI-Prolog (Multi-threaded, 32 bits, Version 6.6.6)
?- [user].
|: 死ぬ(人間).
|: member(ソクラテス, 人間).
|: % user://1 compiled 0.00 sec, 3 clauses
true.
?- 死ぬ(ソクラテス).
false.
なんでtrueにならないんでしょ?
?- [user].
|: 死ぬ(人間).
|: member(ソクラテス, 人間).
|: % user://1 compiled 0.00 sec, 3 clauses
true.
?- 死ぬ(ソクラテス).
false.
なんでtrueにならないんでしょ?
926デフォルトの名無しさん
2018/08/31(金) 15:46:52.79ID:xstmO6GY Prolog、難しすぎる(~o~)
927デフォルトの名無しさん
2019/06/19(水) 04:54:52.34ID:tVNS+22r 【出資】松本卓朗 人工知能詐欺【注意】
https://rio2016.5ch.net/test/read.cgi/rikei/1560859403/
https://rio2016.5ch.net/test/read.cgi/rikei/1560859403/
928デフォルトの名無しさん
2019/10/22(火) 18:08:22.23ID:ng/45f9q 最近Prologを学び始めたのですが、ゴール(目標)について質問があります。教えてください
例えばwikipedia<https://ja.wikipedia.org/wiki/Prolog>などで、
> 目標 = ( 副目標1,副目標2, ... 副目標n ) と置けば、
> 頭部 :- 目標.
というような説明になっているのですが、
『Prologへの入門』だと、
> システムへの質問は1つまたは複数の目標(goal)から成る.
> parent( X, ann), parent( X, pat)
> のような目標の列は
> XがAnnの親であり、かつXがPatの親である
> という目標の連言(conjunction)を意味する.
となってますし、The Art of Prologでも
> An important extension to the queries discussed so far is conjunctive
> queries. Conjunctive queries are a conjunction of goals posed as a query,
> for example, f ather(terach,X) ,father(X,Y)? or in general, Q1, ..., Qn.
となっていて、一番上の引用における「副目標」のことをgola(目標)と呼んでいる
ように思われるのですが、私の理解が間違ってるのでしょうか
それとも、Prolog界で定義というか捉え方が変わったのでしょうか
例えばwikipedia<https://ja.wikipedia.org/wiki/Prolog>などで、
> 目標 = ( 副目標1,副目標2, ... 副目標n ) と置けば、
> 頭部 :- 目標.
というような説明になっているのですが、
『Prologへの入門』だと、
> システムへの質問は1つまたは複数の目標(goal)から成る.
> parent( X, ann), parent( X, pat)
> のような目標の列は
> XがAnnの親であり、かつXがPatの親である
> という目標の連言(conjunction)を意味する.
となってますし、The Art of Prologでも
> An important extension to the queries discussed so far is conjunctive
> queries. Conjunctive queries are a conjunction of goals posed as a query,
> for example, f ather(terach,X) ,father(X,Y)? or in general, Q1, ..., Qn.
となっていて、一番上の引用における「副目標」のことをgola(目標)と呼んでいる
ように思われるのですが、私の理解が間違ってるのでしょうか
それとも、Prolog界で定義というか捉え方が変わったのでしょうか
929デフォルトの名無しさん
2019/10/22(火) 18:11:40.32ID:ng/45f9q930デフォルトの名無しさん
2019/10/22(火) 21:34:35.60ID:QfoZv31s931928
2019/10/22(火) 22:03:20.92ID:ng/45f9q うーん 沢山のゴールの中の「上位」なものを「副」と名付けるとは思えませんが
「目標」が「goal」の訳だとすると、「目標」の上位なものを「副目標」と呼び、副目標の並びを
また「目標」と呼ぶということになってしまいます
「目標」が「goal」の訳だとすると、「目標」の上位なものを「副目標」と呼び、副目標の並びを
また「目標」と呼ぶということになってしまいます
932デフォルトの名無しさん
2019/10/22(火) 22:32:54.50ID:QfoZv31s >>931
書き方が悪かったかな
上位のgoalを構成する部分要素になってるgoalをsubgoalと呼んでるってこと
subgoalもgoal。goalという概念のうち特化したものをsubgoalと呼んでる。
subを強調したいかどうかで書き手が使い分けてるだけ
書き方が悪かったかな
上位のgoalを構成する部分要素になってるgoalをsubgoalと呼んでるってこと
subgoalもgoal。goalという概念のうち特化したものをsubgoalと呼んでる。
subを強調したいかどうかで書き手が使い分けてるだけ
933928
2019/10/23(水) 21:19:52.08ID:9WlWgYr4 確かに「goalを並べてもgoal」という定義はありだと思いますが、目標という言葉が
「副目標」がたくさん出現した後で「頭部 :- 目標.」で初めて出てくるのはどうなんだろうと
いう思いを禁じえません。。
ともあれ、ちょっとすっきりしました
ありがとうございました
「副目標」がたくさん出現した後で「頭部 :- 目標.」で初めて出てくるのはどうなんだろうと
いう思いを禁じえません。。
ともあれ、ちょっとすっきりしました
ありがとうございました
934デフォルトの名無しさん
2020/03/05(木) 20:08:15.95ID:h922Dn8C ひとつ前は去年のレスか……
このスレもゴールしそうだな?
このスレもゴールしそうだな?
935デフォルトの名無しさん
2020/06/04(木) 14:22:16.50ID:fpPgT8jn Prologを使えばオートマトンが簡単に実装出来るな
文法自由文法に相当することも出来るみたいだが詳しいことを教えてくれ
あと、Prologの文法を色々拡張しようと思ってswi-prolog本体のソースコードを読んでるから情報交換頼む
文法自由文法に相当することも出来るみたいだが詳しいことを教えてくれ
あと、Prologの文法を色々拡張しようと思ってswi-prolog本体のソースコードを読んでるから情報交換頼む
936デフォルトの名無しさん
2020/06/04(木) 14:39:49.15ID:fpPgT8jn swi-prolog本体のソース読んでるんだが
__cyg_profile_func_enter使ってswi-prologの関数トレースしようと思ったら出来ないなーと思ったらvisibility("hidden")のattributeが設定されてたw
取りあえず一括置換したわw
Prologって文法がシンプルだからインタープリターのソースも15万ステップぐらいしかないし、実用的な言語実装の勉強になる
さらに汎用言語と組み合わせて使えば構造化データのマッチングなんかで強力な武器になるしいい言語だな!
皆んなでインタープリターのソース読んでProlog広めようぜ!
__cyg_profile_func_enter使ってswi-prologの関数トレースしようと思ったら出来ないなーと思ったらvisibility("hidden")のattributeが設定されてたw
取りあえず一括置換したわw
Prologって文法がシンプルだからインタープリターのソースも15万ステップぐらいしかないし、実用的な言語実装の勉強になる
さらに汎用言語と組み合わせて使えば構造化データのマッチングなんかで強力な武器になるしいい言語だな!
皆んなでインタープリターのソース読んでProlog広めようぜ!
937デフォルトの名無しさん
2020/06/04(木) 14:49:43.71ID:KwTRcPMk プロログがあるならエピログもあってしかるべき。
938デフォルトの名無しさん
2020/06/04(木) 14:58:29.29ID:fpPgT8jn939デフォルトの名無しさん
2020/06/04(木) 15:12:11.04ID:KwTRcPMk ボンジュールの仲間みたいなもんですか、
そいつは気が付きませんでした、レス有難う。
ところでこっちの質問もお願いします。
https://mevius.5ch.net/test/read.cgi/tech/1560333895/533
そいつは気が付きませんでした、レス有難う。
ところでこっちの質問もお願いします。
https://mevius.5ch.net/test/read.cgi/tech/1560333895/533
940デフォルトの名無しさん
2020/06/04(木) 15:21:08.64ID:fpPgT8jn JSとか知らんがな
941デフォルトの名無しさん
2020/06/04(木) 15:23:07.67ID:KwTRcPMk HTMLパーサの話題なんだけど、HTMLならウェブ系のスレかと思って書き込んだけど、レスが付かない。
942デフォルトの名無しさん
2020/06/04(木) 15:27:20.61ID:gUiBGuRe 考えられてはいたらしい
述語論理型プログラミング-EPILOGの提案-
https://dbnst.nii.ac.jp/pro/detail/716
本研究の成果に対して、情報処理学会は、1985年、
淵 一博((財)新世代コンピュータ技術開発機構)に
創立25周年記念論文賞を贈った。
述語論理型プログラミング-EPILOGの提案-
https://dbnst.nii.ac.jp/pro/detail/716
本研究の成果に対して、情報処理学会は、1985年、
淵 一博((財)新世代コンピュータ技術開発機構)に
創立25周年記念論文賞を贈った。
943デフォルトの名無しさん
2020/06/04(木) 16:51:20.08ID:fpPgT8jn >>942
あったんだw
論文読んでる途中だけどかなり勉強になるな
細かい理解はまだだけど。
そもそも確率的な揺らぎを認めない論理プログラミングにどこまで可能性があるか疑問だけどな
Prolog拡張するならそこだろって思うわ
あったんだw
論文読んでる途中だけどかなり勉強になるな
細かい理解はまだだけど。
そもそも確率的な揺らぎを認めない論理プログラミングにどこまで可能性があるか疑問だけどな
Prolog拡張するならそこだろって思うわ
944デフォルトの名無しさん
2020/06/05(金) 02:51:03.47ID:xsOq73W5 Prologが何かわからないので誘導されて
1レスから943レスまで目を回してみたけど
初心者向けなんですかここ?
何をどうするプログラムなのかが
ジャンルすら不明でまったく意味不明です。
まずPrologは何が何でPrologの
ハローワールドの実行方法を教えてください。
1レスから943レスまで目を回してみたけど
初心者向けなんですかここ?
何をどうするプログラムなのかが
ジャンルすら不明でまったく意味不明です。
まずPrologは何が何でPrologの
ハローワールドの実行方法を教えてください。
945デフォルトの名無しさん
2020/06/05(金) 10:10:23.61ID:Ob2W58Ja946デフォルトの名無しさん
2020/06/05(金) 11:21:23.43ID:p2r1F5vv てかPrologスレってもう一個あるんだけどどっちかに統一しないか?
ただでさえ人少ないのに2つもいらんだろ
↓こっちの方が人多そう
http://itest.5ch.net/mevius/test/read.cgi/tech/1490334702
ただでさえ人少ないのに2つもいらんだろ
↓こっちの方が人多そう
http://itest.5ch.net/mevius/test/read.cgi/tech/1490334702
947デフォルトの名無しさん
2020/06/05(金) 12:48:16.98ID:VSGBAHWN 今朝 7 時過ぎに某知恵袋にこんな投稿があった。
A : B は嘘つき
B : A か C が嘘つき
C : A が嘘つき
誰が嘘つきなのか調べるプログラムを書いてくれ
Prolog で書いてる間にこの投稿は削除された。
仕方ないからこっちに貼っておく。
evi_a( Liar) :- member( b/1, Liar).
evi_b( Liar) :- member( a/1, Liar) ; member( c/1, Liar).
evi_c( Liar) :- member( a/1, Liar).
p_evi( Liar,[]) :- write( Liar),nl.
p_evi( Liar,[P/Evi|T]) :-
G =.. [Evi,Liar],
( member( P/1, Liar) -> \+( G) ; G),
p_evi( Liar,T).
p_ml([]).
p_ml([[A,B,C]|T]) :-
Liar = [a/A,b/B,c/C],
( p_evi( Liar,[a/evi_a,b/evi_b,c/evi_c]) ; true ),
p_ml( T).
main :-
p_ml([[0,0,0],[0,0,1],[0,1,0],[0,1,1],[1,0,0],[1,0,1],[1,1,0],[1,1,1]]).
A : B は嘘つき
B : A か C が嘘つき
C : A が嘘つき
誰が嘘つきなのか調べるプログラムを書いてくれ
Prolog で書いてる間にこの投稿は削除された。
仕方ないからこっちに貼っておく。
evi_a( Liar) :- member( b/1, Liar).
evi_b( Liar) :- member( a/1, Liar) ; member( c/1, Liar).
evi_c( Liar) :- member( a/1, Liar).
p_evi( Liar,[]) :- write( Liar),nl.
p_evi( Liar,[P/Evi|T]) :-
G =.. [Evi,Liar],
( member( P/1, Liar) -> \+( G) ; G),
p_evi( Liar,T).
p_ml([]).
p_ml([[A,B,C]|T]) :-
Liar = [a/A,b/B,c/C],
( p_evi( Liar,[a/evi_a,b/evi_b,c/evi_c]) ; true ),
p_ml( T).
main :-
p_ml([[0,0,0],[0,0,1],[0,1,0],[0,1,1],[1,0,0],[1,0,1],[1,1,0],[1,1,1]]).
948デフォルトの名無しさん
2020/06/05(金) 15:03:37.36ID:+2GKliP9949デフォルトの名無しさん
2020/06/05(金) 22:46:33.92ID:VLb22M2N Prologが何かわからないので誘導されて
1レスから943レスまで目を回してみたけど
初心者向けなんですかここ?
何をどうするプログラムなのかが
ジャンルすら不明でまったく意味不明です。
まずPrologは何が何でPrologの
ハローワールドの実行方法を教えてください。
1レスから943レスまで目を回してみたけど
初心者向けなんですかここ?
何をどうするプログラムなのかが
ジャンルすら不明でまったく意味不明です。
まずPrologは何が何でPrologの
ハローワールドの実行方法を教えてください。
950デフォルトの名無しさん
2020/06/06(土) 12:00:17.93ID:qHMuyDwQ :- writeln('hello world'),halt.
951デフォルトの名無しさん
2020/06/06(土) 13:34:07.16ID:nPYA670X >>949
knowledge base(=factとrule)を書いてそれに対してqueryを投げて答えを得る
そういうスタイルで書く言語
原理的にはパターンマッチとbacktrack
論理パズルや組み合わせ問題なんかは比較的簡単に書ける
(が他言語でsolverを使う場合に比べると遅いことが多い)
http://www.learnprolognow.org/lpnpage.php?pagetype=html&pageid=lpn-htmlse1
↑このチュートリアルを読みつつ
↓ここで試すといい
https://swish.swi-prolog.org/
knowledge base(=factとrule)を書いてそれに対してqueryを投げて答えを得る
そういうスタイルで書く言語
原理的にはパターンマッチとbacktrack
論理パズルや組み合わせ問題なんかは比較的簡単に書ける
(が他言語でsolverを使う場合に比べると遅いことが多い)
http://www.learnprolognow.org/lpnpage.php?pagetype=html&pageid=lpn-htmlse1
↑このチュートリアルを読みつつ
↓ここで試すといい
https://swish.swi-prolog.org/
952デフォルトの名無しさん
2020/06/07(日) 02:24:51.84ID:Yd5U2TwL >>950
ありがとうございます。なるほど1行でハロワ書けるんですか、でもそれでゲームのNPCにどうやって自然言語処理するのに使うんでしょうか?
プログラムなんて変数配列とif分岐とfor繰り返しでほぼ全て出来てると聞きましたけど、
それとは違うなんかデータの塊のような
Prolog ってヘンテコな変わったプログラミング言語なんですね。
六法全書読み込んで判例教えたら判決が出力されるんですか?
>>951
MySQLとかPythonのプロンプトような感じでしょうか?
コンソールで問い合わせて答えを得る的な基本CUI?
データベースのようなデータベースと違うようなイライザのようなチャット?
クエリー?エキスパートシステムの雛形?
第一引数にファイル渡すと読み込むんでしょ?
これはコマンドラインで引数渡して戻り値を取得する見たいに出来ないんですかね?
HTMLのActiveXからJScriptで受け取ったりとか
ありがとうございます。なるほど1行でハロワ書けるんですか、でもそれでゲームのNPCにどうやって自然言語処理するのに使うんでしょうか?
プログラムなんて変数配列とif分岐とfor繰り返しでほぼ全て出来てると聞きましたけど、
それとは違うなんかデータの塊のような
Prolog ってヘンテコな変わったプログラミング言語なんですね。
六法全書読み込んで判例教えたら判決が出力されるんですか?
>>951
MySQLとかPythonのプロンプトような感じでしょうか?
コンソールで問い合わせて答えを得る的な基本CUI?
データベースのようなデータベースと違うようなイライザのようなチャット?
クエリー?エキスパートシステムの雛形?
第一引数にファイル渡すと読み込むんでしょ?
これはコマンドラインで引数渡して戻り値を取得する見たいに出来ないんですかね?
HTMLのActiveXからJScriptで受け取ったりとか
953デフォルトの名無しさん
2020/06/07(日) 14:20:37.65ID:1jUe1e78 if と for を使う、普通のプログラミング言語としても使えるよ
if は違うゴール節に入る
for はすべて再帰で書く
それだけのこと
if は違うゴール節に入る
for はすべて再帰で書く
それだけのこと
954デフォルトの名無しさん
2020/06/07(日) 19:52:04.82ID:4Q/izaPV 言語を作った人達ですらappendの意味を理解できなかったらしいからな。
955デフォルトの名無しさん
2020/06/08(月) 02:35:20.50ID:OD6feMKZ Prologを使ったアイデアがいっぱい出てくる
機械学習の可能性に疑問を持ち始めた今こそコレだ!って感じがする笑
これからのテーマは「機械学習じゃ出来ないことをPrologでやろう」だな
因果関係とか戦略的意志決定とか胸が熱くなるんだが笑
機械学習の可能性に疑問を持ち始めた今こそコレだ!って感じがする笑
これからのテーマは「機械学習じゃ出来ないことをPrologでやろう」だな
因果関係とか戦略的意志決定とか胸が熱くなるんだが笑
956デフォルトの名無しさん
2020/06/08(月) 03:13:29.00ID:9sdXvh+T >>955
http://www.iluminado.jp/
その辺のシンボリックAIは80年代、90年代前半に色々検証されてBRMSに名前を変えて残っている。
結局、ブラックボックスになってメンテができないとか、データの精度がとか今の機械学習とおんなじ過ちを30
年前もやっている。
http://www.iluminado.jp/
その辺のシンボリックAIは80年代、90年代前半に色々検証されてBRMSに名前を変えて残っている。
結局、ブラックボックスになってメンテができないとか、データの精度がとか今の機械学習とおんなじ過ちを30
年前もやっている。
957デフォルトの名無しさん
2020/06/08(月) 03:58:01.65ID:OD6feMKZ >>956
なるほどBRMSか
JBoss BRMSとかいうのを調べたがWebとか色んな分野で使われててかなり面白そうだな
結局、Prologの立ち位置としてはそういうのとか他の色んなアルゴリズムの教育用途に適してるかもって思ったわ
簡潔に書けるし、アルゴリズムの教育に持って来いだな
小学校でヴィジュアルプログラミングとかやってる場合じゃねぇ!w
なるほどBRMSか
JBoss BRMSとかいうのを調べたがWebとか色んな分野で使われててかなり面白そうだな
結局、Prologの立ち位置としてはそういうのとか他の色んなアルゴリズムの教育用途に適してるかもって思ったわ
簡潔に書けるし、アルゴリズムの教育に持って来いだな
小学校でヴィジュアルプログラミングとかやってる場合じゃねぇ!w
958デフォルトの名無しさん
2020/06/08(月) 07:17:09.08ID:9sdXvh+T959デフォルトの名無しさん
2020/07/29(水) 07:26:24.50ID:SoSaYlfN iZ-Cのサンプルプログラム書き始めたので見てね。
sunasunax.hatenablog.com
sunasunax.hatenablog.com
960デフォルトの名無しさん
2020/08/02(日) 08:15:30.30ID:W4wBIQXC961デフォルトの名無しさん
2021/12/03(金) 21:44:45.76ID:E2QPyYLa A: Dはうそつきです
B: AとDのどちらかは本当のことを言っています
C: Bの言っていることは本当です
D: 私はうそつきではありません
正直者は必ず本当のことを言っています。
うそつきは必ずうそをつきます。
うそつきはいったい誰?
↑この問題って高階述語になるから一階述語論理しか扱えないPrologでは解けないって理解でいいの?
そうだとしたら現代ではコンピューターでどうやって解くの?
B: AとDのどちらかは本当のことを言っています
C: Bの言っていることは本当です
D: 私はうそつきではありません
正直者は必ず本当のことを言っています。
うそつきは必ずうそをつきます。
うそつきはいったい誰?
↑この問題って高階述語になるから一階述語論理しか扱えないPrologでは解けないって理解でいいの?
そうだとしたら現代ではコンピューターでどうやって解くの?
962デフォルトの名無しさん
2021/12/03(金) 23:00:48.21ID:Oj6t+xnM prologは高階述語も書けるよ
963デフォルトの名無しさん
2021/12/04(土) 06:16:48.61ID:CAsz35to >>962
実装選ぶ必要ありますか?どれでも可能?
実装選ぶ必要ありますか?どれでも可能?
964デフォルトの名無しさん
2021/12/04(土) 07:37:52.32ID:RAd/NC6B よく分からんけど高階論理は不要で、制約論理で解けるんじゃないか
https://www.swi-prolog.org/pldoc/man?section=clpb
Aの発言は Aが真ならDは偽、Aが偽ならDは真という制約になり、これは A=:=(~D) と表せる
Bの発言は B=:=(A+D)、Cの発言は C=:=B、Dの発言は D=:=D と表せる
まとめると ?- sat((A=:=(~D)) * (B=:=(A+D)) * (C=:=B) * (D=:=D)). となり答は
B = C, C = 1, sat(A=\=D). となる
これはBとCは正直、AとDのうち一人は正直でもう一人は嘘つきだけどどちらが嘘つきかは分からないということ
https://www.swi-prolog.org/pldoc/man?section=clpb
Aの発言は Aが真ならDは偽、Aが偽ならDは真という制約になり、これは A=:=(~D) と表せる
Bの発言は B=:=(A+D)、Cの発言は C=:=B、Dの発言は D=:=D と表せる
まとめると ?- sat((A=:=(~D)) * (B=:=(A+D)) * (C=:=B) * (D=:=D)). となり答は
B = C, C = 1, sat(A=\=D). となる
これはBとCは正直、AとDのうち一人は正直でもう一人は嘘つきだけどどちらが嘘つきかは分からないということ
965デフォルトの名無しさん
2021/12/04(土) 23:56:43.15ID:CAsz35to ありがとうございます
文章題からこの制約を書き下せる自信がない…(|||´Д`)
文章題からこの制約を書き下せる自信がない…(|||´Д`)
966964
2021/12/06(月) 19:23:33.90ID:JCSphZpm >>965
正直者は必ず本当のことを言い、うそつきは必ずうそをつくという条件があるので
Aが正直者であるかどうかとAが言っていることが正しいかどうかの真偽は同じになるということで、それを制約論理の式で表すだけ
A=:=(~D)は、A(Aが正直者であること)と(~D)(Aの発言内容「Dは嘘つきだ」)の真偽が一致している(=:=)ということ
Aが真なら(~D)も真だし、Aが偽なら(~D)も偽
他の3人についても同様
これをリンク先にある制約論理で表す
0 偽
1 真
~P not P
P*Q P and Q
P+Q P or Q
P=<Q PならばQ
P=:=Q PとQの真偽は同じ
P=\=Q PとQの真偽は異なる
正直者は必ず本当のことを言い、うそつきは必ずうそをつくという条件があるので
Aが正直者であるかどうかとAが言っていることが正しいかどうかの真偽は同じになるということで、それを制約論理の式で表すだけ
A=:=(~D)は、A(Aが正直者であること)と(~D)(Aの発言内容「Dは嘘つきだ」)の真偽が一致している(=:=)ということ
Aが真なら(~D)も真だし、Aが偽なら(~D)も偽
他の3人についても同様
これをリンク先にある制約論理で表す
0 偽
1 真
~P not P
P*Q P and Q
P+Q P or Q
P=<Q PならばQ
P=:=Q PとQの真偽は同じ
P=\=Q PとQの真偽は異なる
967964
2021/12/06(月) 19:33:58.30ID:JCSphZpm 制約論理を使わない(使えない)場合はどうしたらいいんだろ
d:-d.なんて書いても無限ループになるだけだし
d:-d.なんて書いても無限ループになるだけだし
968デフォルトの名無しさん
2022/11/14(月) 14:12:20.00ID:i6KxBWUg >>961-967
こういうのとか
s(A,B,C,D) :-
( A=true; A=false),
( B=true; B=false),
( C=true; C=false),
( D=true; D=false),
( A=true -> D=false ; true),
( A=false -> D=true ; true),
( B=true -> (A=true ; D=true); true) ,
( B=false -> A=false,D=false ; true),
C=B.
考え方は>>966と同じ
>正直者は必ず本当のことを言い、うそつきは必ずうそをつくという条件があるので
>Aが正直者であるかどうかとAが言っていることが正しいかどうかの真偽は同じになる
SWI-Prologで実行したら解は2つ
A = B, B = C, C = true, D = false
A,B,Cが正直者でDが嘘つき
A = false, B = C, C = D, D = true
Aが嘘つきでB,C,Dが正直者
これと同じだな
>これはBとCは正直、AとDのうち一人は正直でもう一人は嘘つきだけど
>どちらが嘘つきかは分からない
こういうのとか
s(A,B,C,D) :-
( A=true; A=false),
( B=true; B=false),
( C=true; C=false),
( D=true; D=false),
( A=true -> D=false ; true),
( A=false -> D=true ; true),
( B=true -> (A=true ; D=true); true) ,
( B=false -> A=false,D=false ; true),
C=B.
考え方は>>966と同じ
>正直者は必ず本当のことを言い、うそつきは必ずうそをつくという条件があるので
>Aが正直者であるかどうかとAが言っていることが正しいかどうかの真偽は同じになる
SWI-Prologで実行したら解は2つ
A = B, B = C, C = true, D = false
A,B,Cが正直者でDが嘘つき
A = false, B = C, C = D, D = true
Aが嘘つきでB,C,Dが正直者
これと同じだな
>これはBとCは正直、AとDのうち一人は正直でもう一人は嘘つきだけど
>どちらが嘘つきかは分からない
969デフォルトの名無しさん
2022/11/15(火) 01:18:50.21ID:26oE0jcj >>968
変えてみた
s2(A,B,C,D) :-
( A=true; A=false),
( B=true; B=false),
( C=true; C=false),
( D=true; D=false),
( A -> D=false ; D=true),
( B -> (A=true ; D=true) ; A=false,D=false),
C=B.
変えてみた
s2(A,B,C,D) :-
( A=true; A=false),
( B=true; B=false),
( C=true; C=false),
( D=true; D=false),
( A -> D=false ; D=true),
( B -> (A=true ; D=true) ; A=false,D=false),
C=B.
970デフォルトの名無しさん
2022/11/15(火) 01:39:59.69ID:26oE0jcj >>969
変えてみた
s3(A,B,C,D) :-
Boolean=[true,false],
( member(A, Boolean)),
( member(B, Boolean)),
( member(C, Boolean)),
( member(D, Boolean)),
( A -> D=false ; D=true),
( B -> (A=true ; D=true) ; A=false,D=false),
C=B.
変えてみた
s3(A,B,C,D) :-
Boolean=[true,false],
( member(A, Boolean)),
( member(B, Boolean)),
( member(C, Boolean)),
( member(D, Boolean)),
( A -> D=false ; D=true),
( B -> (A=true ; D=true) ; A=false,D=false),
C=B.
971デフォルトの名無しさん
2022/11/16(水) 07:59:27.34ID:KZpN7KA1 >>961
R. Smullyanのto mock a mocking birdの前編はこういう問題の宝庫でおすすめ
多分最も影響力のある論理学の啓蒙書だから釈迦に説法かもしれんが
公務員試験でもあるな、これくらいなら表書けば解ける、多分
R. Smullyanのto mock a mocking birdの前編はこういう問題の宝庫でおすすめ
多分最も影響力のある論理学の啓蒙書だから釈迦に説法かもしれんが
公務員試験でもあるな、これくらいなら表書けば解ける、多分
レス数が950を超えています。1000を超えると書き込みができなくなります。
ニュース
- 「中国人の訪日熱は冷めた」 人気旅行先から日本外れる 14日で自粛呼びかけ1カ月 ★2 [蚤の市★]
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★7 [蚤の市★]
- 最新版Z級クソ映画ランキングが決定! [牛丼★]
- 【STARTO ENTERTAINMENT】SUPER EIGHTの横山裕、フジ『ドッキリGP』ロケで全治2ヶ月の重傷 [Ailuropoda melanoleuca★]
- 「1800万円の売り上げゼロに…」中国インバウンドに特化の宿の今 ★2 [蚤の市★]
- 公用車カーナビのNHK受信料「全額免除を」 千葉市議会、国に制度創設求める意見書可決 [少考さん★]
- 【安倍の実】大誤算!日本企業、円安で苦しむ、、適正為替より大幅に乖離。助けて高市 [219241683]
- 【朗報】南鳥島のレアアース、中国産の「20倍の純度」青山繁晴氏「日本は資源大国」日本復活のファンファーレが鳴り響く! [673057929]
- チー牛のワイでもトー横行けば彼女できるかな
- 愛国者「釘を使わない日本独自の伝統工法スゴイ!」X民「それ中国起源ですよ」→批判殺到 [834922174]
- 👊😅👊三☁😶‍🌫三⛅🏡
- コーヒー、来年3月から30パーセント値上げへ [709039863]
