自然言語処理スレッド その2 at TECH
[2ch|▼Menu]
25:デフォルトの名無しさん
07/03/08 21:11:25
>>23 理想的なPrologプログラムは引数に構造体を要求しない
年令(大島,32).
年令(尾崎,58).
年令(稲葉,55). というようなものでしょう。
この定義に対して、
?- 年令(X,58). と質問する。答えは X=尾崎 となり質問は真となります。
このようなフラットな構造のデータだけで構成されるプログラムを
Prologプログラマは夢見ます。この辺りはリレーショナルデータベースの
第三正規形などの議論をご存じの方にはわかりやすいかも知れません。
これに対して
sum([],0).
sum([A|R],X) :- sum(R,Y),X is A+Y.
と云う定義はリスト構造を引数に期待しています。
?- sum([32,58,55],X). これは X=146 となり質問は真となります。
Prologの多分最大の魅力は部分要素の簡単なパターンマッチだけで
プログラムの挙動が完全に読み取れるという点なのですが、そのためには
データ構造はフラットであるほどよい。リストでさえプログラムの明快さ
に欠けるという感覚があります。それから、
>>21でちょっと触れた 1..集約問題 とは、上の 年令( ) 定義に於いて、
このクラスの年令の合計を求めるプログラムをPrologでは上手く書けない
ということを云っています。武骨にやればもちろん書けますが。


次ページ
続きを表示
1を表示
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5505日前に更新/189 KB
担当:undef