Loading
述語のポストフィックス
ADPでは、述語名の後ろにポストフィックスとして記号を付与し述語の動作に変更を加えることができます。
ポストフィックスは以下のように付与します。
,predname$( 10, "3000", $result),...
$がポストフィックスになります。
以下、ポストフィックスの一覧です。
ポストフィックス一覧
ポストフィックス | 機能 |
@ | 戻り値を配列とする |
$ | キャッシュ |
? | 評価結果をlast述語で返す |
! | 評価する述語を!があるとみなす |
評価結果をlast述語で返す
述語名の後ろに'?'を付与すると、バックトラックを発生させずに評価結果をlast述語をとおして受け取ります。
コード例(sresult.p)
+test('B');
,test?('A'),$x == last, prtn("A:",$x);
,test?('B'),$x == last, prtn("B:",$x);
実行例
D:\sample>..\release\adp sresult.p
A:0
B:-1
,test('A')の評価ではバックトラックが発生するが、,test?('A')と ? ポストフィックスを付与することにより、評価結果を別途last述語を使って受け取ることが出来ます。
Powered by ADP.