【論理】Prolog【初心者】

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2010/11/06(土) 13:00:56
Prolog初心者のスレ

これは良い言語だ…
2012/06/08(金) 08:58:20.35
>>486
引数に複合項を避ける理由は、やはりPrologの定義節をRDBと見做しているか、
そうありたいと思っているから。これが大きい。
2012/06/08(金) 13:01:09.50
単にパターンパッチングとの相性が悪いからだとも思える。
2012/06/08(金) 15:05:47.88
>>489
フレームのような大きな構造の一部だけ変更してそれを次の引数として
渡すというような処理は苦手です。
破壊代入されませんから、構造の再構成が必須となります。
2012/06/08(金) 22:00:24.54
しかし木構造をフラットに述語表現すると
親子のリンク関係を表すために人工的な識別子を導入する必要がある。
このように表現されたデータ構造は、もはや木構造であることが構文的に
保証されない。Cでポインタを用いる場合と同じような危険性が伴う。
複数の木を扱う場合には識別子の管理も面倒である。
2012/06/08(金) 22:49:48.34
>>488
WANの都合ではなかろうか
2012/06/08(金) 22:51:23.00
WAM
2012/06/08(金) 23:20:51.21
つうか複合節はホーン節でないし。
2012/06/11(月) 12:14:05.74
SWI-Prolog Editer を使うために32bit版のSWI-Prologをインストールしたんですが、
拡張子の関連づけをEditerのほうに変更するべきなようです。
アイコンが無関連の表示になっていたんですが、変更用のソフトを使ってみると、関連付けが食い違っていました。
2012/06/11(月) 13:06:52.54
      ___   ━┓  ___    ━┓
     / ―  \  ┏┛/ ―\   ┏┛
    /  (●)  \ヽ ・. /ノ  (●)\  ・
  /   (⌒  (●) /. | (●)   ⌒)\       ____
  /      ̄ヽ__) /   |   (__ノ ̄  |   .   /  -- 丶、
/´     ___/     \        /   .  / ノ   ●) ヽ┏┓
|        \          \     _ノ     .|  (●, ,⊃ ノ ┏┛
|        |          /´     `\    .ゝ、  `´  .へ ・
2012/06/11(月) 14:19:53.34
>>482
リスト以外の複合項で引数の受け手側が待ち受けるということはしませんね。一般的には
そちらの方が可読性が極端に悪くなります。
再帰の場合は、受取側の引数の並びと引き渡し側の引数の並びを一瞥して比較するという
ことがPrologプログラミングの仕事ですから、構造体があったのでは堪りません。
できれば、リストも避けたい。再帰さへできることなら回避したい。不要な繰り返しを
排除し、平坦に、平明さを追求するのがPrologではないでしょうか。
2012/06/11(月) 22:50:04.95
可読性というのは読み手に依存する性質であるから、
特別な事情がなければ一般的な読み手が慣れ親しんでいる
書き方をした方が読みやすくなるといえる。

そして読み手の多くは、構造化データのようにものごとを階層化して
整理するやり方に慣れているということを考えると、複合項を適切に
用いることで可読性が向上すると考えるのが自然である。

余談だが、これは仮名遣いにしても同様である。
2012/06/20(水) 13:04:54.67
http://www.swi-prolog.org/pldoc/doc_for?object=exists_file/1

exists_file/1ってなんか英文法的におかしく無いですか?
file_exists/1ですよね?
2012/06/23(土) 07:05:41.56
>>499
私は知りませんが、述語+対象を原則としたところから始まったのでしょうか。
最初に concat_atom があり、後に atom_concat が生まれ、atom_concat に倣うように
atomic_list_concat が生まれる。こうなると訳がわからない。
2012/06/23(土) 07:17:40.99
concat_atomは第一引数のリストの中のアトムか整数を結合した長いアトムを第二引数にunifyする。
atom_concatは第一引数、第二引数のアトムを結合したアトムを第三引数にunifyする。
atomic_list_concatはconcat_atomと同じだが、アトムと、整数だけでなく浮動小数点を含んだ
数を公式に許した。歴史的事情によってこう命名されたのだと理解している。
2012/06/24(日) 16:46:20.77
>>492
ちょっと間が抜けた遅レスになったが、
ここの「WAMの都合」の意味がわからなかった。どういうことだか教えてください。
503デフォルトの名無しさん
垢版 |
2012/06/24(日) 17:51:51.91
>>502
プログラマがWAMを意識してプログラミングするなんて考え難い。
2012/06/24(日) 17:59:57.52
>>502
Prolog処理系
JAVAのJVMみたいなもの
2012/06/24(日) 22:50:43.44
>>503
昔はみんな、グローバルスタックをできるだけ使わないようにしようとか
処理系の実装を意識してプログラムしてたよ
2012/06/25(月) 12:31:32.85
ノイマン型を意識ぜずにプログラム書く奴いるのか?
トイプログラムならどうでもいいだろうけど。
2012/06/25(月) 12:53:57.00
>>506
Prologプログラマでノイマン型を意識する人がいるかの意味なら、
いないでしょう。
2012/06/25(月) 12:59:45.16
>>507
スタックオーバーフローには注意するだろう。そのこととノイマン型と
どういう関係になるかは知らないが・・・
509デフォルトの名無しさん
垢版 |
2012/06/25(月) 13:40:09.16
>>506
そんなこと考えたら。アウト! という世界だろ。
2012/06/25(月) 16:18:25.34
あらゆるジャンプ先のアドレスを意識してプログラミングする奴がいるか?
2012/06/25(月) 17:32:32.37
配列かリストか考えるだけでもランダムアクセスメモリのこと意識するんじゃね?
2012/06/25(月) 18:55:26.23
>>511
それは配列やリストの特性を意識するのであって、
メモリのことは意識してないのでは?
2012/06/25(月) 21:33:57.47
>>506
Prologの計算モデルを実装するマシンはノイマン型に限定されないと思う
2012/06/25(月) 22:55:57.03
データフローw
2012/06/26(火) 09:24:55.29
ノイマン型を意識する人は死ぬまで1コアマシンを使ってろw
2012/06/26(火) 10:49:32.92
マルチコアで内部的にシーケンサが複数になってもノイマン型の範疇での話。
2012/06/26(火) 14:00:36.35
VLIWでインターロックがなくっても(略
ベクトルプロセッサで(略

何を指摘されても、どうとでも言い逃れが可能な論理ですねw
2012/06/27(水) 05:55:26.77
http://ja.wikipedia.org/wiki/ハーバード・アーキテクチャ
519デフォルトの名無しさん
垢版 |
2012/07/20(金) 05:35:19.90
>>20を見て気になったのですが、Prologは以下の内容のデータベース構築に向いているのでしょうか?
http://toro.2ch.net/test/read.cgi/tech/1341099441/265
2012/07/20(金) 08:04:16.93
>>519
テキストが1GB以下程度で全部メモリに納まるならば、最も向いた言語でしょう。
プログラム言語自体がデータベースですから、定義、変更、条件付けなどは簡単です。

>>20 はPrologを使い込んでない人の意見で、Prologが向かないのは、ユニフィケーションの
繰り返しが短時間に多量に現れるアプリです。例えば画像の画素計算とか、数値処理などです。
2012/07/20(金) 11:09:59.54
>>520
1GBのテキストとなると、検索で大量の「ユニフィケーションの繰り返し」が
起こるからちょっと疑問。
Prologの向き不向きの話は、ソースプログラムのドキュメントとしての表現力では
確実に他のプログラミング言語の上を行くので、少々遅かったり、書き難い点が
あっても、向かないとは考えない方がよい。
2012/07/20(金) 14:44:53.02
>>519の内容は、単なるインデックス化テキストなんで、
(その上フレーズ検索が含まれてないという簡単仕様)
こういうのが向いてない汎用言語なんて基本的にないのではないか?
awkとかshだと面倒くさそうだけど。
2012/07/20(金) 15:04:23.23
>>522
Prologの場合は、http://toro.2ch.net/test/read.cgi/tech/1341099441/265 で書かれている
タグが述語ですから、タグの読み方、意味指定等、ルール付けに何の拘束もありません。プログラマの
自由であり、記述力も概ね無限です。
注釈、コメントを含めてのルール付けになりますから、単なる構造体による定義ではありません。
2012/07/20(金) 15:16:37.29
>>523
このスレでこの課題に応えるプログラムを公開すればよい。
2012/07/22(日) 00:12:08.00
タグが述語は余りよろしくないな。
複数タグを付けたり部分一致検索とかしずらい。
2012/07/22(日) 01:29:55.61
>>523>>522に対して何を主張してるのか分かる人いる?
2012/07/28(土) 06:53:10.65
>>526
猫タグ、動物タグに対して、暗喩を述語に持ってくるという話だろ。
タグとタグの関係を述語として述べるのは当たり前のことだと思うが。
2012/07/28(土) 12:32:28.01
Prologで関係データベースのテーブルを節として定義するにはどうしたらいいのでしょうか?
例えば↓みたいな表です。

personテーブル
+--------------------
| id | name | address |
+--------------------
| 1 | yamada | tokyo |
| 2 | yamada | osaka | ←1とは同姓同名で別人
+--------------------

companyテーブル
+--------------------
| id | name | address |
+--------------------
| 1 | yamada | tokyo | ←紛らわしいがyamadaという会社名の会社
| 2 | yamada | osaka |←同名だが1とは別会社
+--------------------

person_companyテーブル
+--------------------
| person_id | company_id |
+--------------------
| 1 | 1 |
| 2 | 2 |
+--------------------

(続きあり)


2012/07/28(土) 12:33:22.07
>>528

ただし、person(1, yamada, tokyo).といった定義は不可とします。
なぜなら、この節定義では、1とyamadaとtokyoの「意味」がプログラムとして定義されていないからです。
1がpersonテーブルのidだと解釈できるのはプログラム外のコメント文やドキュメントを読んだプログラマだけです。
(C言語の構造体やJavaのクラスでは変数名として意味を定義できています。)

(おわり)
2012/07/28(土) 13:59:37.01
person(id(1), name(yamada), address(tokyo)).
2012/07/28(土) 14:56:59.84
>>530
>>482以降のレス参照
2012/07/28(土) 21:24:10.18
>>531
その議論に参加していたが、つまり何が言いたい?
2012/07/29(日) 05:12:05.59
>>530
本当に必要な情報は第何引数にnameがあるかというようなもの。

テーブル情報(person,1,id,integer).
テーブル情報(person,2,namae,atom).
テーブル情報(person,3,address,atom).

のような述語定義をする他ない。
534533
垢版 |
2012/07/29(日) 05:44:40.80
>>533
s/namae/name/
2012/07/29(日) 12:37:48.14
>>533
>本当に必要な情報は第何引数にnameがあるかというようなもの。

そのとおりだと思うし、これがすべてだね

>>529の発想を裏返せば、
「C言語の関数やJavaのメソッドは引数と関数名(メソッド名)の意味が定義されていない」
から大問題だという話になる
あるいはSmalltalk/Objective-Cのメッセージ定義やRubyのハッシュ引数などのように、
名前で引数に意味を与えることのできる言語以外は一切認めない....ように見える

自分なら>>528は単純に書く

person(1, yamada, tokyo).
person(2, yamada, osaka).
company(1, yamada, tokyo).
company(2, yamada, osaka).
person_company(1, 1).
person_company(2, 2).

Prologにおける>>529の制約はナンセンスだと思う
2012/07/29(日) 15:09:27.74
C とか Java だったらデータは構造体やクラスとして定義するわけで、関数やメソッドとしてなんか定義しない。
データと処理を明確に区別するパラダイムなの。
一方 Prolog は全部節定義でやるから、そこにぶつけた話なんでしょ。

>>533 の方式は、プログラマが読めば理解できる定義だけど、実行時にプログラムから使うのは面倒そうかな。
何番目が address なのかは取得できても、そこから簡単にクエリー組み立てられないよね。


person(name, 1, yamada).
person(address, 1, tokyo).

みたいな定義はどうかな。
これだとテーブル上での順番とかを考える必要はなくて、例えば address が tokyo の人を取得するのを

person(address, Id, tokyo)

みたいに書ける。
537535
垢版 |
2012/07/29(日) 15:56:55.27
>>536
>person(address, Id, tokyo)
>
>みたいに書ける。

いや、以下のように「冗長」に書く必要がある

?- person(address, Id, tokyo), person(name, Id, Name).

それに対して常識的な>>535は「簡潔」に書ける

?- person(Id, Name, tokyo).

Prologにおいて、どちらが優れているかは一目瞭然だ
2012/07/29(日) 16:30:28.00
>>536

クエリー生成(_テーブル名,_引数リスト,_クエリー) :- findall(_,テーブル情報(_テーブル名,_,_,_),_引数リスト),_クエリー =.. [_テーブル名|_引数リスト].

あとはnth1/3かnth0/3を使って自分の検索したいフィールドと変数を結びつける。
539デフォルトの名無しさん
垢版 |
2012/07/29(日) 16:50:29.26
>>536

> person(name, 1, yamada).
> person(address, 1, tokyo).

は確かに魅力的なモデルだが(Binary Data Model? 連想三つ組?)、
残念ながら、IDの管理が難しい。ここではユーザ設定のidを使うことに
なりそうだが、一般的にはシステムが一意のIDを用意しなくては
ならない。そういう機構をうまく組み込まないと実用にならない。
540デフォルトの名無しさん
垢版 |
2012/08/17(金) 07:15:23.82
2つ質問です。
taroはコーヒーのどの種類が好きですか?
という質問が作りたいのですが、どのように記述すればいいでしょうか
test.pl
syurui(coffee,cocoa).
like(taro, cocoa).

こんな感じでいけるかと思いましたが、falseでした。
?- like(taro,syurui(coffee,X)).

あと、ファイル再読み込み(Reload modified files)を頻繁に行うのですが、
ショートカットキーなどはありますか?
2012/08/17(金) 07:19:49.51
一番高速にprolog動かせるのって
どの処理系なの?
542540
垢版 |
2012/08/17(金) 07:20:19.68
すいません、他の言語とごっちゃになってました。
質問を取り下げます。
2012/08/17(金) 08:08:50.83
>>540
% 模範解答ではありません。私好みの定義。Prologの自由さを感じてください。

好きなコーヒー(taro,コロンビアスプレモ).
好きなコーヒー(hanako,グァテマラマラゴギーベ).
好きなコーヒー(taro,コスタリカ).

'taroはコーヒーのどの種類が好きですか?'(_コーヒーの種類のリスト,_taroの好きなコーヒーの種類) :-
    \+(var(_コーヒーの種類のリスト)),
    member(_taroの好きなコーヒーの種類,_コーヒーの種類のリスト),
    好きなコーヒー(taro,_taroの好きなコーヒーの種類).
'taroはコーヒーのどの種類が好きですか?'(_コーヒーの種類のリスト,_taroの好きなコーヒーの種類) :-
    var(_コーヒーの種類のリスト),
    コーヒーの種類のリストを得る(_コーヒーの種類のリスト),
    好きなコーヒー(taro,_taroの好きなコーヒーの種類).

コーヒーの種類のリストを得る(_コーヒーの種類のリスト) :-
    findall(_コーヒーの種類,(
          好きなコーヒー(_,_コーヒーの種類)),
        _重複を許すコーヒーの種類のリスト),
    sort(_重複を許すコーヒーの種類のリスト,_コーヒーの種類のリスト).
544デフォルトの名無しさん
垢版 |
2012/08/18(土) 07:42:46.14
>>543
ありがとうございます!
545543
垢版 |
2012/08/18(土) 08:07:26.97
>>544
どの種類の「どの」にこだわった定義です。どのというからには、
候補リストが与えられるべきだ、という考え方です。
出題の様式というようなことを軽く見て、細部を表現する定義が
私好みです。
2012/08/18(土) 11:42:04.21
>>541
速度を追及するなら、自分でWAM実装するのが近道かと
547uY
垢版 |
2012/08/24(金) 08:23:55.57
Prologを直で触る気はありません

>>>Rubyから<<< Prolog操作したいな〜と思い
https://github.com/preston/ruby-prolog

こんなgem見つけたんですけど使い方が不明です教えてくれませんか
2012/08/24(金) 11:06:40.75
examplesがあるじゃない。
2012/08/27(月) 10:44:20.21
>>547
多分、SWI-PrologのsyntaxからRubyのそれへの変換プログラムを
書かないと使い物にならないと思う。Prologを使いたいと思う課題の
述語はそんなに簡単には書けない。Prologの専門家に書いてもらって
それを使うか、専門の処理系で確かめてそれをRubyに移す方が確実。
2012/08/27(月) 10:55:31.37
そうかもしれない。Prologの専門家だってこれって問題では、
http://www.amazon.co.jp/dp/0201403757 なんかのお世話になって、
書き写し、書き写し、説明を解読しながら書くものだよ。
2012/08/27(月) 11:50:25.32
はあ?
2012/08/27(月) 16:10:05.17
>>550
そのリンクは第3版ですが、すでに第4版が出ています。

PROLOG Programming for Artificial Intelligence
http://www.amazon.co.jp/dp/0321417461
2012/08/27(月) 18:11:20.68
大学の演習でSchemeでProlog処理系を作らされたから、利用する機能を限定すればなればかなりのProlog処理系は自作できると思う
2012/08/28(火) 19:24:32.09
SchemeのPrologならminiKanrenは凄い短いソースで出てきてるね
Kanrenの方が使いやすいけど
2012/08/31(金) 16:31:31.25
沖電気のサイトにpython実装のprolog処理系の記事が掲載されてたよ
2012/09/27(木) 11:46:27.80
他のスレ(正規表現)での続きを書くと、
日本語で書かれてしかもPrologに触れているツイートのうち
評価を含んでいるものを調べると肯定、否定の割合は2:1くらい。
それとは別に、難しい、分からないとのツイートは多い。
2012/09/27(木) 12:11:47.56
Prologでする画像処理なんてありましたっけ?
2012/09/27(木) 15:08:31.86
>>557
Prologの欠点は遅いことです。それもC言語に比べて数百倍の単位で。
遅い理由は、バックトラックに備えてスタックを余分に積むことや、リストを
含む構造体のユニフィケーションの作業量の多さ、アトムテーブルの管理、
GCなどいろいろですが、これだけ遅いと対象範囲がビットマップ全体になる
計算はする気がなくなります。それで汎用システムとしての画像処理に適用
されたという話は聞いたことがありません。
Prologによる画像処理アルゴリズムの研究としては
http://www.amazon.co.jp/dp/0387196471 があります。
2012/09/27(木) 15:42:42.51
Wales大の人だな。MacPrologを改造したProlog+。
http://www.lpa.co.uk/はまだ活動しているみたいだな。
2012/10/02(火) 10:11:30.88
遅い欠点をもつPrologがAIのシステムに導入されたのはなぜ?
現在ではもう時代遅れになっている言語なのかな?
2012/10/02(火) 11:39:10.46
cutのあるバックトラックを使って、ほぼ宣言的に記述できるから。
2012/10/02(火) 13:53:16.16
>>560
C言語などとの相対速度の差は現在の方がさらに開いていると思いますが、
AIは極めて遅い人間の脳がモデルですから、元々速度はあまり問題ありません。
最後は例えばRubyでPythonで同じくらい簡単に書けますかどうですかということ
でしょう。
Prologについては、まだまだ2-3割しかその能力を引き出す努力がなされて
おらず、これからどうなって行くかまったく予断はできません。
2012/10/02(火) 15:20:49.89
なんか斜めです

> 元々速度はあまり問題ありません。
> RubyでPythonで同じくらい簡単に書けます
2012/10/02(火) 15:23:18.10
>>563
Prologでも書けませんが。
2012/10/02(火) 15:43:11.34
>>563
今日、プログラマの水準は高く、Prologクラスの推論ならば、簡単に
インタプリタのロジックを各言語に組み込む方はいます。しかし、その
人が論理学にも精通していたとしても、Prologのプログラミング程度の
単純な論理であっても、いきなりある一定単位持続して書き並べていく
ことは多くの場合そんなに簡単なことではない。
だから、日常的に論理式の記述を習慣付けるためにPrologを使うのです。
2012/10/02(火) 16:17:28.79
Prologレベルの推論エンジンは簡単に書けるなら、
ASP solver competitionにでも参加してみてくれ。
まさかPrologベースのシステムに負けないよな?
2012/10/02(火) 17:33:16.76
1.まずPythonでPrologを実装します
2012/10/02(火) 17:43:02.82
>>567
そういうアプローチが全てのプログラム言語で、できるだけ多くの
プログラマによって、なされることを期待します。
できれば表層はDEC-10 Prolog仕様(ISO標準も同じ)でね。
2012/10/03(水) 01:00:34.38
ISOに合わせるように頑張ってたけど
bagofが上手く実装できなくて詰んだはww
2012/10/04(木) 16:06:23.95
>>560
AIのモデルを簡潔に記述するのが目的だったから
それを何を勘違いしたのか、日本のICOTは秒あたりの推論数を競いだして自滅した
2012/10/04(木) 17:11:04.53
人間の脳は遅いです。ひとつのプロセッサーを見れば。ところが、1000個以上の
プロセッサが協調して働けば、何十万個のプロセッサ付き記憶装置から読み出せれば
偉大な働きをする。囲碁のような単純な思考でもそうでしょう。名人は1秒間に
何千万手に相当する手を読みますが、それは画像認識に近いレベルでなされる。
浮かんだ画像をこれは、だめ。これは、可能性があると。その一瞬10^3どころではない
オーダーの記憶装置付きのセルが働いている考えられる。
ICOTの目指した並行処理は間違ってはいなかったと思います。
2012/10/05(金) 00:03:03.08
飛行機は鳥のようにはばたかず、プロペラを回して飛ぶ。
自動車は馬のように駆けず、タイヤを回して走る。
AIは…?
2012/10/05(金) 00:51:55.41
>>572
emotionとかethics抜きで単体のintelligenceってのが
そもそも存在するのか?

ないものをマネようとして失敗してるんじゃないかと思う。
いや色々な知見は得られているんだけれども。
2012/10/05(金) 05:50:08.90
>>572
強い、弱いという分類がされますが、広義、狭義という分類も可能ですね。
馬の例えだと、馬の脚を車軸と車輪、タイヤで置き換えた。そこで止まって
しまったり、そこから発展して、鳥から飛行機->ジェット機のように別の物に
進化していってしまう。そういう展開全て包容してのAIというのもあり得る。
けれども少なくとも20年前のAIブームの頃には、こういうものはAI研究の
「お零れ」と認識していた。エキスパートシステムもそう。
一時的に馬の蹄がタイヤであっても、そこに止まっていては馬の神経系や
骨格の力学的な研究とも出会うことができないから、それは所詮工業技術
じゃないか。こちらの方が一般的な見解ではないか。
2012/10/05(金) 12:20:07.04
エキスパートシステムはロジックの部分がまさに本流なわけだけど…
2012/10/05(金) 13:27:22.28
>>575
上の文脈からいって、エキスパートシステムは適切ではありませんでしたね。
577デフォルトの名無しさん
垢版 |
2012/10/05(金) 14:09:15.30
>>562
> AIは極めて遅い人間の脳がモデルですから、元々速度はあまり問題ありません。

いやでも、フレーム問題みたいなのも、
人間の脳の処理速度よりコンピュータの処理速度のほうがずっと高速だから
解決できるという見通しが当初からあったんでしょ?
つまり、コンピュータの高速な処理速度にAI実現の将来の希望を託していた
ことからすると、もともと処理速度は重要な問題だったわけで。
2012/10/05(金) 16:09:56.25
>>577
でも速度に「追っかけられる」というような業務ではないです。
2012/10/05(金) 18:06:17.69
天気予報に使ってるエキスパートシステムは速度が重要だよ。
予報が民間に許可された今はリアルタイム予報が期待されているから。
2012/10/08(月) 15:01:54.60
確かにリアルタイムな天気予報は期待されてるけど、
具体的にはゲリラ豪雨みたいなイレギュラーな変化の予報。
これはエキスパートシステムのような大量の情報から引っこ抜くといった
性質のものでは無いのでは…。
2012/10/08(月) 15:36:21.25
>>580
大気シミュの結果、各種リアルタイム測定値、過去の天候パターン記録などは、
エキスパートシステムのソースの一つなのよ。
扱う知識の一つというわけ。天候予測システムについても、
エキスパートシステム論についても知識が古過ぎ。
2012/10/08(月) 17:11:51.49
いくら計算頑張っても元データの精度は超えないぞ。
縦横5km、高さ1kmのメッシュだからな。

せめてあと2ケタのデータ精度向上がないと、計算だけじゃ
ゲリラ豪雨の予測には届かないんじゃないか。
2012/10/08(月) 17:58:25.36
GPV以外にも観測データはありまして…
2012/10/18(木) 11:14:08.91
Prologの宿題スレはなくなってしまったか。
585デフォルトの名無しさん
垢版 |
2012/10/19(金) 09:53:31.41
>>584
大分書き込まれていなかったからね。400位以下にいただろうから仕方ないね。
結構おもしろいコードもあったし、他所からリンクも張ってあったから、
保存しておけばよかった。
2012/10/19(金) 10:04:01.70
>>585
代わりに「Prolog演習の課題を書き込みましょう」というスレを作ってみたが、
2日くらいでこれも削られた。聞くところによれば、今はテンプレの書かれていない
新スレは全部削られるらしい。スレたて荒らしの退治の余波で。
2012/10/19(金) 18:36:19.25
最近のSWI-Prologでは、アトムや関数名の中に改行が含まれても
構わないようだ。'\n'で表現する必要がなく、自然に改行できる。
http://nojiriko.asia/prolog/j72_387.html
http://nojiriko.asia/prolog/c160_246.html
の最初の述語のような定義が可能である。これでシングルクォートも
省ければすばらしいのだが。
2012/10/19(金) 23:53:01.60
論文とか書く人ってどのProlog処理系使ってるのだろうか…
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況