過去スレ
Prologでまったり Part4
http://pc12.2ch.net/test/read.cgi/tech/1235561034/
Prologでまったり Part3
http://pc11.2ch.net/test/read.cgi/tech/1193354806/
PrologでまったりPart 2
http://pc11.2ch.net/test/read.cgi/tech/1102664221/
Prolog でまったり
http://pc5.2ch.net/test/read.cgi/tech/976462999/
探検
Prologでまったり Part5 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
2017/03/24(金) 14:51:42.44ID:ZNjVJLCP
33デフォルトの名無しさん
2017/04/13(木) 18:49:38.84ID:zFvhZDnr >>32
findall/3の方のAです
findall/3の方のAです
2017/04/14(金) 18:45:04.44ID:Xi9X67bT
ファイルから行ならびを得る(_ファイル,_行ならび) :-
open(_ファイル,read,_入力),
findall(_項,(
repeat,(at_end_of_stream(_入力),close(_入力),!,fail;
行入力(_入力,_行))),_行ならび).
行入力(_入力,_行) :-
read_line_to_codes(_入力,_文字コードならび),
atom_codes(_行,_文字コードならび).
open(_ファイル,read,_入力),
findall(_項,(
repeat,(at_end_of_stream(_入力),close(_入力),!,fail;
行入力(_入力,_行))),_行ならび).
行入力(_入力,_行) :-
read_line_to_codes(_入力,_文字コードならび),
atom_codes(_行,_文字コードならび).
35デフォルトの名無しさん
2017/05/03(水) 22:12:53.29ID:jbhMxViH The Art of Prolog が PDF で公開されてるのはいいんだけど、テキストデータは無いのかな……
tesseract-ocr でテキスト化してるけど結構大変だ。
tesseract-ocr でテキスト化してるけど結構大変だ。
36デフォルトの名無しさん
2017/06/13(火) 23:42:07.13ID:3xaVR795 メモリ128GBの環境で述語 foo/1 引数にユニークなアトムを生成して5億節を定義する。
?- between(1,500000000,N),
atom_number(A,N),
assertz(foo(A)),
N = 500000000.
これで110GBを費やした。一節の追加あたり実に220byteということになり、
想像以上に大きくなった。
?- between(1,500000000,N),
atom_number(A,N),
assertz(foo(A)),
N = 500000000.
これで110GBを費やした。一節の追加あたり実に220byteということになり、
想像以上に大きくなった。
3736
2017/06/13(火) 23:46:21.36ID:3xaVR795 処理系は SWI-Prologインタプリタ (64bit版)
アトムテーブルがハッシュで管理されているとして、こんなにメモリを消費
するものだろうか。
アトムテーブルがハッシュで管理されているとして、こんなにメモリを消費
するものだろうか。
38デフォルトの名無しさん
2017/06/14(水) 20:28:21.72ID:/Jq2k2dd SWI-Prologインタプリタ
一方、atomの生成をやめて、グローバルスタックにリストして整数を積む。
?- findall(N,between(1,500000000,N),L).
これだと1リスト要素ごとに24バイト消費する。
一方、atomの生成をやめて、グローバルスタックにリストして整数を積む。
?- findall(N,between(1,500000000,N),L).
これだと1リスト要素ごとに24バイト消費する。
39デフォルトの名無しさん
2017/06/15(木) 06:08:36.12ID:OS4b1hKm Microsolft Azure の一時間あたりの料金
G5: 32 コア, 448 GB RAM,6144GB ディスク, \1,044.276/時間
消費税込みで月間81万円くらい。
G5: 32 コア, 448 GB RAM,6144GB ディスク, \1,044.276/時間
消費税込みで月間81万円くらい。
2017/06/15(木) 06:12:07.38ID:OS4b1hKm
448GBメモリを使うことができれば、
Prologのオンメモリデータベースで大企業でもかなりの部分がカバーできる。
ディスクストレージへのバックアップ時間など、課題もあるだろうが。
Prologのオンメモリデータベースで大企業でもかなりの部分がカバーできる。
ディスクストレージへのバックアップ時間など、課題もあるだろうが。
2017/06/15(木) 06:22:15.34ID:OS4b1hKm
% swipl -G445000M
?- findall(N,between(1,18000000000,N),L).
が可能だということ。
?- findall(N,between(1,18000000000,N),L).
が可能だということ。
42デフォルトの名無しさん
2017/06/15(木) 06:41:01.44ID:SczZ9hH443デフォルトの名無しさん
2017/06/16(金) 06:18:01.36ID:Qm+kDu/O >>36
% GNU Prolog 1.4.4 でやってみたよ。コードはこんなんでいい?
ps :- shell('ps p $PPID -O sz',_).
eat_memory( Start,End) :-
\+(( between( Start,End,N), number_atom( N,A), assertz( foo( A)), fail)).
main :-
os_version( OS), write( OS), nl,
ps,
eat_memory( 1,10000),
ps,
eat_memory( 10001,20000),
ps,
true.
% GNU Prolog 1.4.4 でやってみたよ。コードはこんなんでいい?
ps :- shell('ps p $PPID -O sz',_).
eat_memory( Start,End) :-
\+(( between( Start,End,N), number_atom( N,A), assertz( foo( A)), fail)).
main :-
os_version( OS), write( OS), nl,
ps,
eat_memory( 1,10000),
ps,
eat_memory( 10001,20000),
ps,
true.
44デフォルトの名無しさん
2017/06/16(金) 06:19:09.35ID:Qm+kDu/O % 実行結果
| ?- main.
main.
Linux 3.16.0-4-amd64
PID SZ S TTY TIME COMMAND
2993 32177 S pts/3 00:00:00 /home/i/Downloads/gprolog-1.4.4/bin/gprolog
PID SZ S TTY TIME COMMAND
2993 32807 S pts/3 00:00:00 /home/i/Downloads/gprolog-1.4.4/bin/gprolog
PID SZ S TTY TIME COMMAND
2993 33466 S pts/3 00:00:01 /home/i/Downloads/gprolog-1.4.4/bin/gprolog
(1728 ms) yes
| ?-
% 65 くらいだね。SWI の実装は知らないが 3.5 倍くらいなら驚くほどではないと思う。
| ?- main.
main.
Linux 3.16.0-4-amd64
PID SZ S TTY TIME COMMAND
2993 32177 S pts/3 00:00:00 /home/i/Downloads/gprolog-1.4.4/bin/gprolog
PID SZ S TTY TIME COMMAND
2993 32807 S pts/3 00:00:00 /home/i/Downloads/gprolog-1.4.4/bin/gprolog
PID SZ S TTY TIME COMMAND
2993 33466 S pts/3 00:00:01 /home/i/Downloads/gprolog-1.4.4/bin/gprolog
(1728 ms) yes
| ?-
% 65 くらいだね。SWI の実装は知らないが 3.5 倍くらいなら驚くほどではないと思う。
2017/06/16(金) 07:24:41.91ID:3eXmF8sI
46デフォルトの名無しさん
2017/06/16(金) 16:54:43.29ID:TakoXWt847デフォルトの名無しさん
2017/06/21(水) 20:47:56.02ID:v8ZlsGJ1 それにしても一億節になると一節の追加時間が二万分の一秒と極端に遅い。
ハッシュの重なりが1万通りくらい出てきて平均5000回リンクを辿ると
いうことか。
ハッシュの重なりが1万通りくらい出てきて平均5000回リンクを辿ると
いうことか。
48デフォルトの名無しさん
2017/06/26(月) 14:25:30.75ID:1MBq+06J Prologもインメモリデータベースとしてさらに進化するべき時期。
http://www.publickey1.jp/blog/17/intel_persistent_memory2018xeoncascade_lake.html
http://www.publickey1.jp/blog/17/intel_persistent_memory2018xeoncascade_lake.html
2017/06/26(月) 19:19:28.13ID:J+dCdevE
そこはHPEのThe Machineじゃないの?
2017/06/26(月) 20:39:09.17ID:1MBq+06J
51デフォルトの名無しさん
2017/07/01(土) 13:39:49.52ID:yvgbUlYU 制約論理プログラミングってのでPrologの色んな弱点緩和されてるっぽい。
SWI-Prologにもclpfdなるライブラリで提供されてるらしいけど使ってる?
SWI-Prologにもclpfdなるライブラリで提供されてるらしいけど使ってる?
52デフォルトの名無しさん
2017/07/02(日) 06:07:25.30ID:b2F1GUNM >>51
全く使っていない
全く使っていない
53デフォルトの名無しさん
2017/07/02(日) 06:58:37.04ID:7x1CJ3Ta GNU Prolog で制約論理プログラミングしてるよ。
ゼブラパズルに置き換えられる問題は世の中に結構ある。
ゼブラパズルに置き換えられる問題は世の中に結構ある。
54デフォルトの名無しさん
2017/07/03(月) 05:54:57.56ID:6QSWtKdI Prologがメジャーに復帰するためにはもう少し生きたプログラムが
表面に出てこないと
表面に出てこないと
55デフォルトの名無しさん
2017/07/03(月) 10:52:00.94ID:p/temOJb それに尽きる
56デフォルトの名無しさん
2017/08/02(水) 11:00:33.21ID:AyM7Pnm72017/08/02(水) 12:36:37.86ID:E8GFzbft
Prologのサンプルみたいんだけど、これって他のOOP言語とかでもライブラリとして実装可能じゃない?
2017/08/02(水) 20:33:24.50ID:iKI4Roin
可能だよ
59デフォルトの名無しさん
2017/08/02(水) 20:40:47.00ID:E8GFzbft じゃあprologを使うメリットって何?
いや、別にprologをdisりたい訳じゃないけどどういう言語なのかなと思って
いや、別にprologをdisりたい訳じゃないけどどういう言語なのかなと思って
2017/08/03(木) 04:03:02.89ID:WCischub
Prolog Programming for Artificial Intelligence (4th Edition)ってどうですか?
いい本なら買うつもりです
いい本なら買うつもりです
2017/08/03(木) 12:49:51.06ID:0ZfpTseB
62デフォルトの名無しさん
2017/08/04(金) 03:49:13.37ID:kIgI5e6Z >>3
関数型の次は論理型がくる
関数型の次は論理型がくる
2017/08/05(土) 10:44:36.62ID:MSodZ/NA
中核派のほうに細々と生き残ってるよなあ
2017/08/06(日) 01:06:18.01ID:eutB4+go
中核派がPrologを使っていたとは。
革マル派はLispですか?
革マル派はLispですか?
65デフォルトの名無しさん
2017/08/06(日) 11:05:55.46ID:peki0++3 赤軍は?
2017/08/06(日) 12:59:05.66ID:SmKvCm0C
>65
>赤軍は?
赤軍というのは、通常は旧ソ連の軍隊のこと。
赤軍合唱団というのもありますが、
あなたの言いたいのは、日本の「連合赤軍」のこと
でしょう?
>赤軍は?
赤軍というのは、通常は旧ソ連の軍隊のこと。
赤軍合唱団というのもありますが、
あなたの言いたいのは、日本の「連合赤軍」のこと
でしょう?
2017/08/06(日) 17:35:57.36ID:Co8jByrZ
2017/08/06(日) 17:42:40.12ID:D2MwPYUj
だから赤軍派?って言ったじゃねーか!
2017/08/07(月) 09:24:07.63ID:tdYEUDnr
>68
>65では、
>赤軍は?
と書いてあって、
赤軍派?
とは、書いてありませんが。
実は「派」の字は書いてあったのだが、
私が老眼の為に見えなかったのでしょうか。
と
>65では、
>赤軍は?
と書いてあって、
赤軍派?
とは、書いてありませんが。
実は「派」の字は書いてあったのだが、
私が老眼の為に見えなかったのでしょうか。
と
2017/08/07(月) 20:15:00.51ID:y+tGiyqS
嫌味なマジレスw
2017/08/07(月) 20:50:47.72ID:9xNxBROd
Prologおじさん改めPrologおじいさんですね
72デフォルトの名無しさん
2017/10/25(水) 11:21:14.75ID:ozqNX1fD ラズパイ上で動くPrologが既にあるのだが、どんなアプリが面白いだろうか
2017/12/21(木) 07:07:21.01ID:ewcS0SAQ
兎にも角にもアレクサ君と連携
74デフォルトの名無しさん
2017/12/21(木) 08:15:15.55ID:EOeEZWwX Prologって型定義をしないけど型が全くないという訳ではない
アトム、アトミック、整数、浮動小数点数、リスト
だけどそれ以上に区別する気はない
アトム、アトミック、整数、浮動小数点数、リスト
だけどそれ以上に区別する気はない
75デフォルトの名無しさん
2017/12/21(木) 09:32:27.33ID:ewcS0SAQ ラバパイではそういうわけにはいかないが最近の速いパソコンだとPrologの一つの単一化も
3ナノ秒以下で実行されるらしい
Prologは遅いからとかの言い訳は利かないのかも
3ナノ秒以下で実行されるらしい
Prologは遅いからとかの言い訳は利かないのかも
2017/12/22(金) 23:29:19.91ID:6BLzPHcG
ラバパイじゃ遅そうだな
ラバだからな
ラバだからな
2018/02/16(金) 06:41:22.56ID:W1XJdyx1
☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆
2018/03/23(金) 03:56:42.38ID:v4A1VyNI
・電通、企業の顧客対応を自動化・高度化する日本語AIサービス「Kiku-Hana」を開発
http://tech.nikkeibp.co.jp/it/atclact/activer/nkpr/RSP474948_22032018/
Prologの採用事例がまた一つ
http://tech.nikkeibp.co.jp/it/atclact/activer/nkpr/RSP474948_22032018/
Prologの採用事例がまた一つ
79デフォルトの名無しさん
2018/03/23(金) 04:08:26.39ID:6jIYybpe 自然言語処理はPrologの得意分野だからな
2018/03/23(金) 18:09:31.47ID:Wi+5DRxB
自然言語処理が確率的な手法で進めば進むほど、Prologの出番が出てくる。
2018/05/01(火) 08:58:56.17ID:fTDqzH+p
法律の条文解釈をHaskellでやってるのは見た事あるけど、Prologって、そういうのも可能なんだろうか?
2018/05/02(水) 03:42:05.92ID:MIS1A4AD
日本の法律は厳密に定義されていない部分がわりにあってうまくいかないという話をどこかで読んだことあるな
実際の基準や閾値は判例見ないとわからなかったりとか
そういうあいまいなところを実情に合わせて柔軟に解釈して運用することで時代の変化にある程度追従していけるようにしてあるのかも
実際の基準や閾値は判例見ないとわからなかったりとか
そういうあいまいなところを実情に合わせて柔軟に解釈して運用することで時代の変化にある程度追従していけるようにしてあるのかも
2018/05/23(水) 08:30:56.56ID:PUSKgIep
憲法解釈でやりたい放題なんだから今さら
84デフォルトの名無しさん
2018/05/23(水) 20:04:35.28ID:Au5e7VGg 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
E5JQH
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
E5JQH
85デフォルトの名無しさん
2018/07/05(木) 01:36:48.58ID:RfoszcD2 Z7K
86デフォルトの名無しさん
2018/11/05(月) 10:15:56.17ID:j3sHpoUt WikipediaのPrologの記載にある種の執念を感じた(笑)
2018/11/05(月) 14:32:06.16ID:JsuzbYis
>86
あれはまだまだ序文にすぎないよ
プロローグだけに
あれはまだまだ序文にすぎないよ
プロローグだけに
2018/11/06(火) 08:41:11.47ID:CZhh9Cm6
>87
座布団一枚!
座布団一枚!
89デフォルトの名無しさん
2018/11/11(日) 14:34:03.14ID:vUUak6BF90デフォルトの名無しさん
2018/11/11(日) 17:51:52.84ID:96wp+TZd NGゆき
2019/02/05(火) 17:47:02.82ID:sCQhaZP1
TwitterでPrologがちょっと燃えててワラタ
92デフォルトの名無しさん
2019/02/26(火) 20:00:32.82ID:W0wJxBNy yarnに採用!おめでとう!
https://jser.info/2019/02/26/yarn-v2berryfastify-v2tslint/
また、ワークスペースの改善としてConstraintsというProlog(実際にはtau-prolog)を使った制約を扱うプラグインが追加されています。ワークスペース間の依存などのルールをPrologを使って記述して、より効率的に扱えるようにするのが目的のようです。
>>91
くやしく。
https://jser.info/2019/02/26/yarn-v2berryfastify-v2tslint/
また、ワークスペースの改善としてConstraintsというProlog(実際にはtau-prolog)を使った制約を扱うプラグインが追加されています。ワークスペース間の依存などのルールをPrologを使って記述して、より効率的に扱えるようにするのが目的のようです。
>>91
くやしく。
2019/02/27(水) 02:39:32.99ID:uWJyq6/U
パッケージ管理やビルドツールにPrologを使うというのは(Prologを使える人が少ないという点を除けば)極めて良いアイデアだと思う
94デフォルトの名無しさん
2019/02/27(水) 02:48:11.64ID:WT+xSYik なんで今まで誰もやらなかったのかね
95デフォルトの名無しさん
2019/02/27(水) 12:50:03.80ID:+TCpifLa makeで足りてるから
96デフォルトの名無しさん
2019/03/06(水) 18:36:48.48ID:fBh61pOJ Prologでリストを使わない人はいないと思うのだけれど、
引数の部分にリスト以外の複合項を全く書かない人もいる。一方、引数に終始、複合項や式が
出続ける書き手もいる。
もちろん、対象領域が違うからという理由が大きいのだけれど、そのことは少し軽く見て、
そういう視点で観察してプログラマを分類してみるのも面白い。
引数の部分にリスト以外の複合項を全く書かない人もいる。一方、引数に終始、複合項や式が
出続ける書き手もいる。
もちろん、対象領域が違うからという理由が大きいのだけれど、そのことは少し軽く見て、
そういう視点で観察してプログラマを分類してみるのも面白い。
2019/03/08(金) 22:49:07.51ID:NeLzfZqe
Prologの本はいっぱいあるけど、GHC系言語の解説書ってないのかなぁ。
あれでどんなプログラミングができるのかいまいちイメージがつかめない。
あれでどんなプログラミングができるのかいまいちイメージがつかめない。
2019/03/08(金) 23:01:46.51ID:meEyRQaU
>>97
結局、これはいい、という適用分野が見つからなかった
結局、これはいい、という適用分野が見つからなかった
2019/03/08(金) 23:23:02.60ID:3HgW2fRj
100デフォルトの名無しさん
2019/03/08(金) 23:25:00.97ID:NeLzfZqe そうなんだ?
Prologを踏まえて作られたものだから少なくともそれよりは利点があるものと思ったけど。
Prologを踏まえて作られたものだから少なくともそれよりは利点があるものと思ったけど。
101デフォルトの名無しさん
2019/03/08(金) 23:25:55.60ID:NeLzfZqe >>99
あ、あるんだね。ありがとう。
あ、あるんだね。ありがとう。
102デフォルトの名無しさん
2019/03/09(土) 00:15:35.43ID:/409IHbE 並行論理プログラミング言語 GHC / KL1 - Kazunori Ueda - 早稲田大学
http://www.ueda.info.waseda.ac.jp/~ueda/readings/GHC-intro.pdf
GHCの考案者による解説
http://www.ueda.info.waseda.ac.jp/~ueda/readings/GHC-intro.pdf
GHCの考案者による解説
103デフォルトの名無しさん
2019/04/17(水) 08:44:19.08ID:28onwIaH >>40
SSDだと遅い?
SSDだと遅い?
104デフォルトの名無しさん
2019/06/07(金) 12:04:24.13ID:Vw8dl1xl >>96
私は アトム+リスト 派だな。RDBの影響からか構造体は書かない。
私は アトム+リスト 派だな。RDBの影響からか構造体は書かない。
105デフォルトの名無しさん
2019/06/10(月) 16:41:53.47ID:JdO3de0t '1文字ずつ交互に1つの文字配列に格納し'(_文字列_1,_文字列_2,_文字数,_文字ならび) :-
findall(_文字,一文字ずつ交互に(_文字列_1,_文字列_2,_文字数,_文字),_文字ならび).
一文字ずつ交互に(_文字列_1,_文字列_2,_文字数,_文字) :-
between(0,_文字数,N),
交互に(_文字列_1,_文字列_2,N,_文字).
交互に(_文字列_1,_文字列_2,N,_文字) :-
sub_atom(_文字列_1,N,1,_,_文字).
交互に(_文字列_1,_文字列_2,N,_文字) :-
sub_atom(_文字列_2,N,1,_,_文字).
findall(_文字,一文字ずつ交互に(_文字列_1,_文字列_2,_文字数,_文字),_文字ならび).
一文字ずつ交互に(_文字列_1,_文字列_2,_文字数,_文字) :-
between(0,_文字数,N),
交互に(_文字列_1,_文字列_2,N,_文字).
交互に(_文字列_1,_文字列_2,N,_文字) :-
sub_atom(_文字列_1,N,1,_,_文字).
交互に(_文字列_1,_文字列_2,N,_文字) :-
sub_atom(_文字列_2,N,1,_,_文字).
106デフォルトの名無しさん
2019/07/01(月) 21:23:07.04ID:VvtU1+Ac % 今日書いたプログラム
solve( _,0,New,New) :-
!.
solve( [],_,_,_) :-
!, fail.
solve( [_|T],R,B,New) :-
solve( T,R,B,New).
solve( [H|_],R,_,_) :-
R < H,
% write( R-H),nl,
!, fail.
solve( [H|T],R,B,New) :-
RN is R - H,
% write( RN-[H|B]),nl,
solve( T,RN,[H|B],New).
main :-
Elem = [9729,8895,8572,7627,6576,6460,5842,5496,5467,2921,1685,511],
solve( Elem,31178,[],New),
write( New),nl,
true.
solve( _,0,New,New) :-
!.
solve( [],_,_,_) :-
!, fail.
solve( [_|T],R,B,New) :-
solve( T,R,B,New).
solve( [H|_],R,_,_) :-
R < H,
% write( R-H),nl,
!, fail.
solve( [H|T],R,B,New) :-
RN is R - H,
% write( RN-[H|B]),nl,
solve( T,RN,[H|B],New).
main :-
Elem = [9729,8895,8572,7627,6576,6460,5842,5496,5467,2921,1685,511],
solve( Elem,31178,[],New),
write( New),nl,
true.
107デフォルトの名無しさん
2020/03/05(木) 19:56:08.14ID:h922Dn8C108デフォルトの名無しさん
2020/05/20(水) 07:32:13.18ID:fGOoG/D2 Prologこんなところでも実用されてたのね
https://robotstart.info/2020/05/19/heart-conditioner-top.html
https://robotstart.info/2020/05/19/heart-conditioner-top.html
109デフォルトの名無しさん
2020/05/20(水) 09:33:08.57ID:Dfazl3Af 朝日新聞x電通=0
110デフォルトの名無しさん
2020/05/21(木) 10:05:05.65ID:p6Pkr9q+ AZ-Prologですね
111デフォルトの名無しさん
2020/05/21(木) 10:25:23.25ID:p6Pkr9q+ >>105
これ間違っていますね。_文字数の意味が今ひとつ不明ですが多分、
'1文字ずつ交互に1つの文字配列に格納し'(_文字列_1,_文字列_2,_文字数,_文字ならび) :-
_文字数_1 is _文字数 - 1,
findall(_文字,一文字ずつ交互に(_文字列_1,_文字列_2,_文字数_1,_文字),_文字ならび).
でないといけません。
これ間違っていますね。_文字数の意味が今ひとつ不明ですが多分、
'1文字ずつ交互に1つの文字配列に格納し'(_文字列_1,_文字列_2,_文字数,_文字ならび) :-
_文字数_1 is _文字数 - 1,
findall(_文字,一文字ずつ交互に(_文字列_1,_文字列_2,_文字数_1,_文字),_文字ならび).
でないといけません。
112デフォルトの名無しさん
2020/06/05(金) 03:01:05.09ID:p2r1F5vv Prologで文脈自由文法が出来ると聞いてやってきた
情報求む
簡単にオートマトン書けるし良い言語だな
情報求む
簡単にオートマトン書けるし良い言語だな
113デフォルトの名無しさん
2020/06/05(金) 23:08:38.31ID:d3cW9y/k W. F. Clocksin/C.S. Mellish著、中村克彦訳
『Prologプログラミング』(日本コンピュータ協会刊行)
の
「第9章 文法規則の使用」
には、文脈自由文法をPrologで実現する方法が解説されて
いますl
『Prologプログラミング』(日本コンピュータ協会刊行)
の
「第9章 文法規則の使用」
には、文脈自由文法をPrologで実現する方法が解説されて
いますl
114デフォルトの名無しさん
2020/06/06(土) 00:52:50.14ID:P2ph+/53 >>113
情報サンクス!
Prologって知れば知るほど面白い言語だな
オートマトンもコンパイラも簡潔に書ける
乗り換え案内的なヤツもすぐ作れそうなのに配列の最大値を求めるとかは他の言語の方が楽に書けそうだな
特定のジャンルのアルゴリズム特化型言語か
独自のアレンジ加えたくて、今、swi-prolog本体のソース読み始めて分かったことは、
visibility("hidden")のattributeが設定されてるからソース書き換えないとinstrument-functionsを使った関数トレースが出来ない
C言語で15万行(ステップ数)ぐらい
qlfとかいう超高速読み込み可能な中間コードを生成してる
PL_next_solution()からVMの処理が始まるかも(違ったらスマン)
ぐらいかな
情報サンクス!
Prologって知れば知るほど面白い言語だな
オートマトンもコンパイラも簡潔に書ける
乗り換え案内的なヤツもすぐ作れそうなのに配列の最大値を求めるとかは他の言語の方が楽に書けそうだな
特定のジャンルのアルゴリズム特化型言語か
独自のアレンジ加えたくて、今、swi-prolog本体のソース読み始めて分かったことは、
visibility("hidden")のattributeが設定されてるからソース書き換えないとinstrument-functionsを使った関数トレースが出来ない
C言語で15万行(ステップ数)ぐらい
qlfとかいう超高速読み込み可能な中間コードを生成してる
PL_next_solution()からVMの処理が始まるかも(違ったらスマン)
ぐらいかな
115デフォルトの名無しさん
2020/06/20(土) 16:50:18.23ID:s+0TrQkE 時代がようやくPrologに追い付いてきた。
飛躍の環境が整いつつある。
飛躍の環境が整いつつある。
116デフォルトの名無しさん
2020/09/15(火) 14:31:15.52ID:aWAWrZMP 帰納論理プログラミングってプログラムの入出力の正しい例と不正解の例をあたえて機械学習でプログラムを作るはなしでいいんだよね?
最近のニューラルネットワークから影響受けた進歩はどんなのがあるの?
決定木を作りたい分野?だからあまり影響うけてないのかな。
最近のニューラルネットワークから影響受けた進歩はどんなのがあるの?
決定木を作りたい分野?だからあまり影響うけてないのかな。
117デフォルトの名無しさん
2020/11/13(金) 21:40:55.37ID:YvL+uxnX Tabled Prologって何ですか?何が凄いの?
118デフォルトの名無しさん
2020/11/20(金) 20:30:34.02ID:kpOgVe3q >>117
フィボナッチ数列の定義で40番目前後で、計算できなくなっていた定義に、
途中で計算できた値を動的に asserta((fib(N) :- !)) してしまうと途端に巨大な
フィボナッチ数列を生成できるようになる。この場合は自分でassertaしているが
それを処理系が全ての目標に対して、結果を書留め、その結果を優先して利用する。
Prologの速度の遅さを改善し、深さ優先探索では計算不能の場合でも解が得られる
ケースがある。
フィボナッチ数列の定義で40番目前後で、計算できなくなっていた定義に、
途中で計算できた値を動的に asserta((fib(N) :- !)) してしまうと途端に巨大な
フィボナッチ数列を生成できるようになる。この場合は自分でassertaしているが
それを処理系が全ての目標に対して、結果を書留め、その結果を優先して利用する。
Prologの速度の遅さを改善し、深さ優先探索では計算不能の場合でも解が得られる
ケースがある。
119デフォルトの名無しさん
2020/11/20(金) 21:17:41.49ID:YhokOqrJ 全然わからない…うわーん
120デフォルトの名無しさん
2020/11/23(月) 02:51:39.97ID:XIoHPhIo miniKanrenのcondeとかcondaとかconduとか用語の名前つけの意味が分からん。
どっかに書いてあるの?
てかこんな変な略語にする意味あるの??学びにくい
どっかに書いてあるの?
てかこんな変な略語にする意味あるの??学びにくい
121デフォルトの名無しさん
2020/11/25(水) 10:47:14.62ID:m/dxKoiX122デフォルトの名無しさん
2021/02/04(木) 08:23:36.35ID:JjBI2OlW >>121
確かに、解がその時その時で変わる目標もあるので、そのことをどう見抜くのだろうか
確かに、解がその時その時で変わる目標もあるので、そのことをどう見抜くのだろうか
123デフォルトの名無しさん
2021/05/21(金) 17:21:50.55ID:ZyYdcxQO 要素位置が同じ(_n番目,L1,L2,L1のn番目,L2のn番目) :-
要素位置が同じ(1,_n番目,L1,L2,L1のn番目,L2のn番目).
要素位置が同じ(N,_n番目,[A|_],[B|_],A,B).
要素位置が同じ(M,_n番目,[_|R1],[_|R2],A,B) :-
succ(M,N),
要素位置が同じ(N,_n番目,R1,R2,A,B).
要素位置が同じ(1,_n番目,L1,L2,L1のn番目,L2のn番目).
要素位置が同じ(N,_n番目,[A|_],[B|_],A,B).
要素位置が同じ(M,_n番目,[_|R1],[_|R2],A,B) :-
succ(M,N),
要素位置が同じ(N,_n番目,R1,R2,A,B).
124デフォルトの名無しさん
2021/05/21(金) 17:34:04.02ID:ZyYdcxQO % 遅いですが、これでも同じ結果がでます。
要素位置が同じ(_n番目,L1,L2,L1のn番目,L2のn番目) :-
nth1(_n番目,L1,L1のn番目),
nth1(_n番目,L2,L2のn番目).
要素位置が同じ(_n番目,L1,L2,L1のn番目,L2のn番目) :-
nth1(_n番目,L1,L1のn番目),
nth1(_n番目,L2,L2のn番目).
125デフォルトの名無しさん
2021/05/22(土) 04:06:27.31ID:EzA/TCTS Prologでは非決定性の述語に書いていくというのが普通です。
春の七草(セリ).
春の七草(ナズナ).
春の七草(ゴギョウ).
春の七草(ハコベラ).
春の七草(ホトケノザ).
春の七草(スズナ).
春の七草(スズシロ).
この春の七草/1という述語は非決定性です。
つまり、所謂データベースは非決定性述語だということになります。
春の七草(セリ).
春の七草(ナズナ).
春の七草(ゴギョウ).
春の七草(ハコベラ).
春の七草(ホトケノザ).
春の七草(スズナ).
春の七草(スズシロ).
この春の七草/1という述語は非決定性です。
つまり、所謂データベースは非決定性述語だということになります。
126デフォルトの名無しさん
2021/05/22(土) 06:37:34.55ID:EzA/TCTS '春の七草の名前の中に「スズ」が入るのは'(_名前の中にスズが入る春の七草) :-
春の七草(_名前の中にスズが入る春の七草),
sub_atom(_名前の中にスズが入る春の七草,_,_,_,スズ).
のように検索します。sub_atom/5の第二、第三、第四引数はそれぞれ
匿名変数になっていますが、ここは本来
第二引数 : 変位
第三引数 : 文字数
第四引数 : 残り文字数
が来るところです。この検索ではこの情報は必要がないから匿名変数にしてあります。
春の七草(_名前の中にスズが入る春の七草),
sub_atom(_名前の中にスズが入る春の七草,_,_,_,スズ).
のように検索します。sub_atom/5の第二、第三、第四引数はそれぞれ
匿名変数になっていますが、ここは本来
第二引数 : 変位
第三引数 : 文字数
第四引数 : 残り文字数
が来るところです。この検索ではこの情報は必要がないから匿名変数にしてあります。
127デフォルトの名無しさん
2021/05/22(土) 06:58:50.79ID:EzA/TCTS '春の七草の名前の中に「スズ」が入るのは'(_名前の中にスズが入る春の七草) :-
春の七草(_春の七草),
sub_atom(_春の七草,_,_,_,スズ),
_春の七草 = _名前の中にスズが入る春の七草.
% この方が良いという意見もある。私は >>126 で構わないと思いますが。
春の七草(_春の七草),
sub_atom(_春の七草,_,_,_,スズ),
_春の七草 = _名前の中にスズが入る春の七草.
% この方が良いという意見もある。私は >>126 で構わないと思いますが。
128デフォルトの名無しさん
2021/05/22(土) 10:57:31.66ID:EzA/TCTS Prologで項を読み込む時は read や read_term を使うけれど、syntax errorにならないように気を使わなくてはならず、さらに最後にピリオドが必要だったりであまり使われない。
SWI-Prologでは文の読み取りは read_line_to_string/2 が主に使われるようだ。
?- read_line_to_string(current_input,S).
とかやると、プロンプトが出てきて、入力可能になる。アルファベットと認識できる文字なら空白があろうとビリオドがあろうと全体がストリングとして読み取られる。
SWI-Prologでは文の読み取りは read_line_to_string/2 が主に使われるようだ。
?- read_line_to_string(current_input,S).
とかやると、プロンプトが出てきて、入力可能になる。アルファベットと認識できる文字なら空白があろうとビリオドがあろうと全体がストリングとして読み取られる。
129デフォルトの名無しさん
2021/05/22(土) 11:35:44.08ID:EzA/TCTS さて、read_line_to_string/2の第二引数にはStringが来る。このString。少々ヘンである。
?- read_line_to_string(current_input,X),name(Y,X).
|: 山下
X = "山下",
Y = 山下.
?- name(山下,X).
X = [23665, 19979].
?- read_line_to_string(current_input,[23665,19979]).
|: 山下
false.
?-
伝統的にnameの第二引数にStringが来ると第一引数には対応するアトムが単一化される。確かそうなっているようだが、これをread_line_to_stringの第二引数にもってくるとfalse.となる。
?- read_line_to_string(current_input,X),name(Y,X).
|: 山下
X = "山下",
Y = 山下.
?- name(山下,X).
X = [23665, 19979].
?- read_line_to_string(current_input,[23665,19979]).
|: 山下
false.
?-
伝統的にnameの第二引数にStringが来ると第一引数には対応するアトムが単一化される。確かそうなっているようだが、これをread_line_to_stringの第二引数にもってくるとfalse.となる。
130デフォルトの名無しさん
2021/05/22(土) 11:43:12.26ID:EzA/TCTS もう少しやってみると
?- read_line_to_string(current_input,X),X = [97,98].
|: ab
false.
?- "ab" = [97,98].
false.
?- name(X,"ab").
X = ab.
?-
name/2とは第二引数にStringと文字コードリストが入り得る仕様のようだ。
それではなぜ第一引数にアトムがくると文字コードリストが選択されるのか。
双方向性の述語の仕様として異様である。
?- read_line_to_string(current_input,X),X = [97,98].
|: ab
false.
?- "ab" = [97,98].
false.
?- name(X,"ab").
X = ab.
?-
name/2とは第二引数にStringと文字コードリストが入り得る仕様のようだ。
それではなぜ第一引数にアトムがくると文字コードリストが選択されるのか。
双方向性の述語の仕様として異様である。
131デフォルトの名無しさん
2021/05/22(土) 11:54:49.12ID:EzA/TCTS 実際には、Stringであるかatomであるかはほとんど気にせず使っている。理由は、
?- read_line_to_string(current_input,S),sub_atom(S,0,1,_,X).
|: 山下
S = "山下",
X = 山.
のようにsub_atom/5やatom_concat/3を介すると自動的にatomに変換されてしまう。
ほとんどの文字列処理ではこれらの組込述語を使うことになるためStringとatomについて心配する必要がない。
ただし、
?- read_line_to_string(current_input,S),assertz(S).
|: 山下
これはエラーになる。Stringを述語名に持ってくることはできない。
?- read_line_to_string(current_input,S),sub_atom(S,0,1,_,X).
|: 山下
S = "山下",
X = 山.
のようにsub_atom/5やatom_concat/3を介すると自動的にatomに変換されてしまう。
ほとんどの文字列処理ではこれらの組込述語を使うことになるためStringとatomについて心配する必要がない。
ただし、
?- read_line_to_string(current_input,S),assertz(S).
|: 山下
これはエラーになる。Stringを述語名に持ってくることはできない。
132デフォルトの名無しさん
2021/05/24(月) 13:39:16.27ID:pTUv/8tK >>131
?- read_line_to_string(current_input,S),string_to_atom(S,A),assertz(A).
のようにアトムに変換する述語を介すれば定義可能。
?- read_line_to_string(current_input,S),string_to_atom(S,A),assertz(A).
のようにアトムに変換する述語を介すれば定義可能。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国・ロシア両軍の爆撃機が東京方面へ向かう「異例のルート」を共同飛行…核も搭載可能、連携して威嚇か ★8 [ぐれ★]
- 【速報】「女芸人No.1決定戦 THE W」9代目女王にニッチェ! 7年ぶり3度目で悲願の優勝 [牛丼★]
- 「おこめ券は米以外の食品も買える。効果的な活用を」 地元で農水相 [山形県] [少考さん★]
- 【芸能】『女芸人No.1決定戦THE W』 粗品が最後にバッサリ「優勝賞金1000万円にしてはレベル低い大会」 [冬月記者★]
- 今年の流行語大賞 『働いて働いて働いてまいります』が受賞で不快感… 過労自殺の遺族らが会見「家族にむち打つような行為だ」 [冬月記者★]
- いじめ後遺症 15年前のトラウマに苦悩する当事者「夢の中に出てくる」「された側は一生ものの傷」 [♪♪♪★]
- 【実況】博衣こよりのえちえちダンガンロンパ6🧪
- 【実況】博衣こよりのえちえちダンガンロンパ5🧪
- 🏡パン🍞つー✌まる👌見え👊😅👊
- 【朗報】愚鈍な日本入ついに気ずく「高市より進次郎のほうがマシだったのでわ…」 [743999204]
- ねえ、ちゃんと風呂はいってる??
- 日本人、インバウンド減っても貧乏すぎて国内旅行すら行けないと判明🥺 [399259198]
