0

XSBバージョン3.3.5マニュアル(「PartialOrder AnswerSubsumption」から)の例を試しています。

:- table sp(_,_,po(</2)).
sp(X,Y,1):- edge(X,Y).
sp(X,Z,N):- sp(X,Y,N1),edge(Y,Z),N is N1 + 1.

そして、私は得ています

++Error[XSB/Runtime/P]: [Syntax] :- table sp ( _ , _ , po ( >/  <--- HERE? ************ 
++                                                    2 ) ) 

何が問題なのですか?

また、エラーはありません

:- table sp(_,_,lattice(min/3)).
4

2 に答える 2

2

私はこれを試してみます(構文エラーなので)

:- table sp(_,_,po('<'/2)).
sp(X,Y,1):- edge(X,Y).
sp(X,Z,N):- sp(X,Y,N1),edge(Y,Z),N is N1 + 1.
于 2011-11-20T07:28:21.853 に答える
0

エラーメッセージで演算子が「反転」した(またはエラーメッセージが1文字失われた?)のは奇妙なことです。tableディレクティブは、「inside」エラーを生成する可能性があります(ディレクティブはライブラリ述語呼び出しです)。または、コンサルティングの前にエラーが生成される可能性があります。

演算子宣言の変更による構文エラー(つまり、op(N、xfx、<)やop(M、xfy、/)のような宣言がMに関してNを変更した)、またはサンプルが現在のテーブル/3でずれている可能性があります仕様。

私は(thanosQRが提案するものと同様に)、最も単純なことを試してみます。ディレクティブを変更し、(冗長?)アリティ表示を削除します。

:- table sp(_,_,po(<)).
于 2011-11-20T08:26:39.693 に答える