Prolog初心者のスレ
これは良い言語だ…
探検
【論理】Prolog【初心者】
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2010/11/06(土) 13:00:562010/11/06(土) 13:04:34
ただでさえ過疎スレなのに初心者スレが必要なのか?
2010/11/06(土) 13:26:20
>>1
萌
萌
4デフォルトの名無しさん
2010/11/06(土) 13:28:222010/11/06(土) 14:23:21
Prolog初心者があそびにきました
1. 日本語の通る無料の処理系
2, 初心者向けチュートリアル
3. 初心者向けおすすめ書籍(いまでも容易に手に入るもの)
あたりがテンプレにあると助かります
ご一考いただれば幸いです
1. 日本語の通る無料の処理系
2, 初心者向けチュートリアル
3. 初心者向けおすすめ書籍(いまでも容易に手に入るもの)
あたりがテンプレにあると助かります
ご一考いただれば幸いです
2010/11/06(土) 23:55:21
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。
アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
京都大学霊長類研究所
言語訓練のために立てたものです。
アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
京都大学霊長類研究所
7デフォルトの名無しさん
2010/11/07(日) 19:12:20 .NETで動く、あるいはC#コードに埋め込めるPrologがあればいいのだが
2010/11/07(日) 22:39:54
Prolog#
IronProlog
IronProlog
2010/11/07(日) 23:08:05
>>8
おぉ、d
おぉ、d
2010/11/09(火) 09:56:40
2010/11/09(火) 10:01:41
1211
2010/11/09(火) 10:04:06 ごめん処理系だから、 1, でした。
2, は素っ気ないのが多くて難しいな。
2, は素っ気ないのが多くて難しいな。
2010/11/09(火) 10:34:19
2010/11/09(火) 12:17:58
考えてみると、Prologチュートリアルはこのスレ(別スレ立ててもいいけど)でこれから始めればよい。
2010/11/09(火) 14:53:12
「Prologの宿題片付けます」の方は、凝った問題が多くて初心者向けとは
いえないから、ここは思い切りやさしい課題満載のスレになるといいね。
いえないから、ここは思い切りやさしい課題満載のスレになるといいね。
16デフォルトの名無しさん
2010/11/09(火) 21:57:56 prologこそクラウドを制することの出来る言語
2010/11/09(火) 22:41:14
つーかPrologは何に向いてるのかが初心者を惑わすのだと思ふ
2010/11/10(水) 06:33:16
Prolog 百夜話
引数がリストかどうか判定する述語 list/1 の定義は、
list([_|_]).
です。
?- list([1,2,3]).
yes
?- list([1,2|R]).
R = _13353
yes
?- list([1,[a,b],3]).
yes
?- list(3).
no
ところで、
?- list([]).
no
?- 空リストはリストではありません。アトムです。
引数がリストかどうか判定する述語 list/1 の定義は、
list([_|_]).
です。
?- list([1,2,3]).
yes
?- list([1,2|R]).
R = _13353
yes
?- list([1,[a,b],3]).
yes
?- list(3).
no
ところで、
?- list([]).
no
?- 空リストはリストではありません。アトムです。
2010/11/10(水) 11:22:34
2010/11/10(水) 12:59:28
2010/11/10(水) 13:17:24
>>20
多分、定理証明のような分野を念頭に置いての書き込みだろう。
現在のPrologの衰退ぶりから見て、それが常識化しているのかも
知れない。
このスレの中でその常識が誤謬であることを証明しよう。
ありとあらゆる分野のコードを示すことで。
多分、定理証明のような分野を念頭に置いての書き込みだろう。
現在のPrologの衰退ぶりから見て、それが常識化しているのかも
知れない。
このスレの中でその常識が誤謬であることを証明しよう。
ありとあらゆる分野のコードを示すことで。
2010/11/10(水) 19:51:31
2010/11/10(水) 20:20:30
>>22
そうだったか!
私は20年以上、空リストはリストではないと思っていた。
list([]).
list([_|_]).
これが定義ですか。
アトムでかつリストというのはちょっと腑に落ちないが。
そうだったか!
私は20年以上、空リストはリストではないと思っていた。
list([]).
list([_|_]).
これが定義ですか。
アトムでかつリストというのはちょっと腑に落ちないが。
2010/11/10(水) 20:25:49
2010/11/10(水) 21:13:19
完全な定義は、
list(V) :- var(V),!,fail.
list([]).
list([H|T]) :- list(T).
'.'(3,5) はリストではない。
list(V) :- var(V),!,fail.
list([]).
list([H|T]) :- list(T).
'.'(3,5) はリストではない。
2010/11/10(水) 21:17:44
ぶっちゃけリストの定義なり扱いなりは、歴史的には処理系によりけりなりけり。
[]がアトムでなくてもあまり困らないし。
[]がアトムでなくてもあまり困らないし。
2010/11/10(水) 21:40:22
>>26
そういうことのようですね。
そういうことのようですね。
2010/11/11(木) 08:42:20
初心者にとっては難解なやりとりだったと思いますが、
list/1 という述語は integer/1 と同じく検査用の述語として使おうとしています。
?- list([1,2]).
yes
?- list(8).
no
?- です。典型的な使われ方としては、
加算([],0).
加算([L|R],S) :-
list(L),
加算(L,S1),
加算(R,S2),
S is S1 + S2.
加算([A|R],S) :-
number(A),
加算(R,S1),
S is A + S1.
?- 加算([3,4,[1,2,3],2],X).
X = 15
?- となります。
list/1 という述語は integer/1 と同じく検査用の述語として使おうとしています。
?- list([1,2]).
yes
?- list(8).
no
?- です。典型的な使われ方としては、
加算([],0).
加算([L|R],S) :-
list(L),
加算(L,S1),
加算(R,S2),
S is S1 + S2.
加算([A|R],S) :-
number(A),
加算(R,S1),
S is A + S1.
?- 加算([3,4,[1,2,3],2],X).
X = 15
?- となります。
2010/11/12(金) 05:55:38
2010/11/12(金) 09:07:46
アトムでも複合項でもない「文字列」の型を導入している処理系だってあるし、
別に何でもいいのでは
別に何でもいいのでは
2010/11/12(金) 09:10:45
もちろんISO準拠にはならないという意味では困るけど
2010/11/12(金) 09:20:29
>>29
横レスだけど、Prologの[]は、LISPでいうところのNILに相当するのではないかと
?- X=[a|[]].
X = [a].
?- X=[she | [is | [25 | []]]].
X = [she, is, 25].
横レスだけど、Prologの[]は、LISPでいうところのNILに相当するのではないかと
?- X=[a|[]].
X = [a].
?- X=[she | [is | [25 | []]]].
X = [she, is, 25].
2010/11/12(金) 09:24:51
そういえば、Schemeの空リスト () は型が独立している…よね?
2010/11/12(金) 09:34:34
>>30
単純項と複合項 しかない というのがPrologの値打ちだったのではないかな。
単純項と複合項 しかない というのがPrologの値打ちだったのではないかな。
2010/11/12(金) 09:40:55
よくわからんけど、その「単純項」とやらの仲間に入れてやればいいじゃん
数のことを考えてあえて「アトム」とは書かなかったんでしょ
数のことを考えてあえて「アトム」とは書かなかったんでしょ
2010/11/12(金) 09:46:47
2010/11/12(金) 09:50:20
また誰も使っていない用語をw
2010/11/12(金) 10:03:18
2010/11/12(金) 10:08:33
その場その場で言葉を類推して作ってるんですねw
2010/11/12(金) 10:32:37
>>39
うん。言葉の選択は大事だからいつもわかりやすい言い方が
ないか探してはいる。単項はアトムを言い換えたのだけれども、
ここは変数との対比になるから定数でなくてはいけない。
単純項という言葉は Prolog-KABA のリファレンスマニュアルが
初出かも知れない。後に出版された単行本にも出てくるはず。
Prolog講座などの単一化の授業以外では使われないと思う。
うん。言葉の選択は大事だからいつもわかりやすい言い方が
ないか探してはいる。単項はアトムを言い換えたのだけれども、
ここは変数との対比になるから定数でなくてはいけない。
単純項という言葉は Prolog-KABA のリファレンスマニュアルが
初出かも知れない。後に出版された単行本にも出てくるはず。
Prolog講座などの単一化の授業以外では使われないと思う。
2010/11/12(金) 10:58:23
プロログ講座実施規程
第一条 JIS用語は、これを無視する。
第一条 JIS用語は、これを無視する。
2010/11/12(金) 11:51:21
毎日がプロローグ。だからいつも新鮮
2010/11/12(金) 14:03:34
ここまでの内容をふまえて、初心者向けに
・PrologのISO規格は1995年以降。不統一な用語の亡霊が君に新鮮な毎日をもたらさんとす。
・「アトム」は整数などを含まない。(Common Lisp用語との違い)
・PrologのISO規格は1995年以降。不統一な用語の亡霊が君に新鮮な毎日をもたらさんとす。
・「アトム」は整数などを含まない。(Common Lisp用語との違い)
2010/11/12(金) 14:42:15
Prologの世界は用語には無頓着で20年くらい前の話になるけど
ISO規格の日本側委員だった中村克彦先生がunificationを
融合、融合とおっしゃるから、我が意を得たりで、「やはり、
融合で統一のお考えですか」と訊いたら、
「あ、全然そんなことないです。なんでもいいんです。」
だと。
ISO規格の日本側委員だった中村克彦先生がunificationを
融合、融合とおっしゃるから、我が意を得たりで、「やはり、
融合で統一のお考えですか」と訊いたら、
「あ、全然そんなことないです。なんでもいいんです。」
だと。
2010/11/12(金) 14:51:01
unificationを融合?w
resolutionと混同してませんか、それ
resolutionと混同してませんか、それ
2010/11/12(金) 14:57:53
>>45
いいえ、unificationですw
いいえ、unificationですw
2010/11/12(金) 15:03:00
「なんでもいい」というのは「統一されていれば、」というふうに解釈しますけどね私はw
2010/11/12(金) 15:22:11
>>47
まあ、そうでしょう。
まあ、そうでしょう。
2010/11/12(金) 15:48:57
unificationの訳語は「単一化」じゃないの?
2010/11/12(金) 15:54:50
>>49
悔やまれるのは、「先生ぜひ融合で統一しましょう」と尻を押さなかったこと。その場に
いたProlog協会の面々を扇動して、このように強く働きかければ、中島、後藤、古川氏等は
中村先生が説得可能だったでしょう。当時はメジャー言語の尻尾くらいにいたから、考えも
しなかったけど、今思えば、単一化なんて変な用語はまずかった。
単一化しかない言語ですから。
悔やまれるのは、「先生ぜひ融合で統一しましょう」と尻を押さなかったこと。その場に
いたProlog協会の面々を扇動して、このように強く働きかければ、中島、後藤、古川氏等は
中村先生が説得可能だったでしょう。当時はメジャー言語の尻尾くらいにいたから、考えも
しなかったけど、今思えば、単一化なんて変な用語はまずかった。
単一化しかない言語ですから。
2010/11/12(金) 16:05:20
2010/11/12(金) 16:07:37
やばい、なんか気持ちが入って混乱気味の発言になった。
2010/11/12(金) 17:07:37
ISOでいう「compound term」(複合項。これも論理学風)と同じ意味の「structure」の訳語としては、
「構造」より「構造体」の方がわかりやすいというか、正しいというか、そんな気がする。
少なくとも日本語では「構造物」を単に「構造」と言ったら分かりにくいんじゃないか、
というような意味で。今さらだけどw
「構造」より「構造体」の方がわかりやすいというか、正しいというか、そんな気がする。
少なくとも日本語では「構造物」を単に「構造」と言ったら分かりにくいんじゃないか、
というような意味で。今さらだけどw
2010/11/12(金) 21:42:03
用語ばなしの続きですが、これまで何度も使ってきた例の述語、
親子(頼朝,義朝).
親子(義朝,為義).
先祖(A,B) :- 親子(A,B).
先祖(A,B) :- 親子(A,C),先祖(C,B).
でなぜ、親子にはルールがないか、という問題です。親子/2は英語で
いうところのprimitiveな情報ということになります。まあ、最後に
行き着くところ、ですね。このような情報を何と呼ぶか、25年くらい
悩んできたのですが、最近これを、基(もとい)と表現することにしま
した。ここで、親子/2はもといである、という風に使います。
「単一化」以上に日常から離れますが、やまと言葉に潜む力に賭けたい
と思います。
親子(頼朝,義朝).
親子(義朝,為義).
先祖(A,B) :- 親子(A,B).
先祖(A,B) :- 親子(A,C),先祖(C,B).
でなぜ、親子にはルールがないか、という問題です。親子/2は英語で
いうところのprimitiveな情報ということになります。まあ、最後に
行き着くところ、ですね。このような情報を何と呼ぶか、25年くらい
悩んできたのですが、最近これを、基(もとい)と表現することにしま
した。ここで、親子/2はもといである、という風に使います。
「単一化」以上に日常から離れますが、やまと言葉に潜む力に賭けたい
と思います。
2010/11/12(金) 22:03:36
実は>>26を書いたとき、「[]を「(リストの)けり」と呼ぶことを今思いついた」と
よほど付け加えようと思いましたが、やめてよかったと思いますw
よほど付け加えようと思いましたが、やめてよかったと思いますw
2010/11/12(金) 23:30:26
親子/2は、単純に「命題」という用語でいいんじゃないのかな。
命題は西洋哲学から生まれた概念だから、やまと言葉には
そぐわないかもしれないけど。
ところで、数学だと和算という言葉はあるけど、論理学には対応する
やまと言葉はあるのかな?哲学は「問答(もんどう)」でいい気はするけど。
命題は西洋哲学から生まれた概念だから、やまと言葉には
そぐわないかもしれないけど。
ところで、数学だと和算という言葉はあるけど、論理学には対応する
やまと言葉はあるのかな?哲学は「問答(もんどう)」でいい気はするけど。
2010/11/13(土) 05:07:55
58デフォルトの名無しさん
2010/11/13(土) 23:36:00 prologは業務処理に向いているだろうか?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【速報】「女芸人No.1決定戦 THE W」9代目女王にニッチェ! 7年ぶり3度目で悲願の優勝 [牛丼★]
- 731部隊の新資料、中国が公開 「日本が細菌戦の罪を自白」と主張 ロシアが引き渡し [少考さん★]
- 中国・ロシア両軍の爆撃機が東京方面へ向かう「異例のルート」を共同飛行…核も搭載可能、連携して威嚇か ★7 [ぐれ★]
- 【広島】ペルー女性の国保加入を誤って認め、福山市が医療費484万円を肩代わりするミス…入院して手術を受ける [ぐれ★]
- 東京の自販機そばに金塊4200万円分、何者かに持ち去られる…札幌の50代が8000万円振り込んだ後に上京して被害 [どどん★]
- 山田邦子 ひょうきん族時代の年収は12億円「ただ税金が80%」 [muffin★]
- テメェは俺を怒らせたオラァ👊💢😅💢👊🏡
- 「か…勘違いしないでよね…💢」👈誰の声で再生された??? [839143615]
- 泊まったペンションで殺人事件が起きて外部と連絡もできないときってどうしてる?? [793117252]
- ジョージ「ガチで危機感持ったほうがいい」←お前ら忘れてるだろ
- 【実況】博衣こよりのえちえちダンガンロンパ2🧪
- ブレイキングダウンの前日記者会見ビンタされて失神してる奴出てるやん
