next up previous contents
Next: 2.4.2 永久中断 Up: 2.4 実行時エラーの表示とトレース Previous: 2.4 実行時エラーの表示とトレース

2.4.1 節の失敗 (failure)

呼び出されたゴールを, ガード部の規則にしたがって チェックしたが, どの節の条件にもマッチしなかった時は, そのゴールは失敗する. 以下に失敗するプログラムの例とその実行トレースを示す.

:-module main.

main:- true | gen(X), con(X).

gen(X):- true | X = a.

con(b):- true | true.
con(c):- true | true.

% g_fail -t                                                        1
   1 CALL:main:main? 
   1 REDU:main:main :-
   2   0:+gen(_4)
   3   1:+con(_4)?                                                 5
   2 CALL:main:gen(_4)? 
   2 REDU:main:gen(a)? 
   3 CALL:main:con(a)? 
!!! Reduction Failure !!!
   4 FAIL:main:con(a)? a                                          10
%

節が失敗したため10行目に失敗した節 4 FAIL:main:con(a)?が表示された. この時は図のように, ` a' コマンドでトレースを中止することが推奨される.



next up previous contents
Next: 2.4.2 永久中断 Up: 2.4 実行時エラーの表示とトレース Previous: 2.4 実行時エラーの表示とトレース



KLIC