Loading
transfer (別のスクリプトに制御を渡す)
形式
transfer( $filepath)
引数
完了時の動作
- 常に次の述語を実行に移ります。バックトラックしません。
バックトラック時の動作
- 常にバックトラックします。前の述語にバックトラックします。
説明
$filepathで指定されたスクリプトに制御を移します。BASICのCHAINステートメント、ASPのtransferメソッドとほぼ同じです。
transfer述語を実行したスクリプトの以降の別のゴール節は実行されません。以下のコードで printn は実行されません(printnは別のゴール節)。
,transfer($filepath);
,printn('transfer was called');
transfer述語を実行したスクリプトの同じゴール節の残りの述語は実行されます。以下のコードで printnは実行されます(,で区切られている為、printnは同じゴール節)。
,transfer($filepath),printn('transfer was called');
コード例(lib/transferl.p)
,printn('transfer1');
,transfer('transfer2.p');
,printn('I am not printed.');
コード例(lib/transfer2.p)
,printn('transfer2');
,transfer('transfer3.p'), printn('I am printed.');
コード例(lib/transfer3.p)
,printn('DONE.');
実行例
D:\sample\lib>adp transfer1.p
transfer1
transfer2
I am printed.
DONE.
Powered by ADP.