[解決済み] "シンタックスエラー。Prologで「演算子が期待されています。
2022-02-02 19:51:09
質問
Prologでデータフローを表現したグラフ構造があります。
- ノード1から2へ、1から3へ、といったエッジがありますね。
- ノード1には変数x、ノード4には変数tが定義されている、など。
- 変数dはノード4で、変数xはノード7で使用される、など。
関数
definition_clear_path
を計算する必要があります。
定義クリアパス
は、任意の変数の
これを実行すると、次のようなエラーが発生します。
definition_clear_path/3: Undefined procedure: definition_clear_path1/4
However, there are definitions for:
definition_clear_path/3
のルールを入力すると
definition_clear_path1
をターミナルから表示します。
Syntax error: Operator expected
. なぜ?
edge(1, 2).
edge(1,3).
edge(3,7).
edge(3,4).
edge(4,6).
edge(4,5).
edge(7,x).
def(p,1).
def(e,1).
def(d,1).
def(x,1).
def(c,1).
def(d,4).
def(t,4).
def(c,5).
def(x, 6).
def(c,6).
use(d,3).
use(e,3).
use(d,4).
use(c,4).
use(x,4).
use(t,4).
use(c,5).
use(x,6).
use(c,6).
use(d,6).
use(x,7).
pos_path(X,Y, [X,Y]):- edge(X,Y).
pos_path(Start, End, [Start|T]) :- edge(Start,Mid), pos_path(Mid, End, T).
definition_clear_path( Node , J , Var ):- definition_clear_path1( Node , J , Var , [ Node ] ) .
definition_clear_path1(B , J, K , F):- edge (B , J ).
definition_clear_path1( Node , J , Var , L):-
edge ( Node , N1 ) ,
not(def( Var , N1 )) ,
not(use( Var , N1 )) ,
definition_clear_path1( N1 , J , Var , [ Node | L ] ) .
解決方法は?
の間のスペースを削除します。
edge
と冒頭の括弧を削除します。
スペースは用語を区切りますので、Prologは次のように考えます。
edge
は複合項のファンクタではなく、演算子である。
関連
-
[解決済み】Prolog - 引数が十分にインスタンス化されていない
-
[解決済み] "シンタックスエラー。Prologで「演算子が期待されています。
-
[解決済み] "シンタックスエラー。Prologで「演算子が期待されています。
-
[解決済み] Prologにおけるエクスクラメーションマーク
-
[解決済み] SWI-Prologでリストから重複を削除する方法は?
-
[解決済み] Prologは初めてです。このコードを実行しようとすると、 - ERROR: Undefined procedure: teaches/2 (DWIM could not correct goal) が表示されます。
-
[解決済み] Prologの未定義手続きエラー
-
[解決済み] Prologでは%記号はどのような意味ですか?
-
[解決済み] Prolog ㊙と㊙の違いは何ですか?
-
[解決済み] 論理プログラミングに関して、PrologとminiKanrenの主な技術的な違いは何でしょうか?[クローズド]。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Prolog - 引数が十分にインスタンス化されていない
-
[解決済み] "シンタックスエラー。Prologで「演算子が期待されています。
-
[解決済み] Prologにおけるエクスクラメーションマーク
-
[解決済み] SWI-Prologでリストから重複を削除する方法は?
-
[解決済み] Prolog - 回文ファンクタ
-
[解決済み] Prologは初めてです。このコードを実行しようとすると、 - ERROR: Undefined procedure: teaches/2 (DWIM could not correct goal) が表示されます。
-
[解決済み] Prologの未定義手続きエラー
-
[解決済み] Prologにおける"˶‾‾‾"とは何ですか?
-
[解決済み] Prolog ㊙と㊙の違いは何ですか?
-
[解決済み] 論理プログラミングに関して、PrologとminiKanrenの主な技術的な違いは何でしょうか?[クローズド]。