高階、否定

上へ

述語名/引数  (call *s)
 (call *s *w *t *r)
要約 *sで表現されたクエリアトムを実行します。
互換性 Win Unix
解説 *sには、一つのアトムを表すs式を指定します。*sはコマンドラインで指定するクエリと同じものです。しかし、複数のクエリは指定できません。
実行時(call *s)はそれ自身を*sに置き換えます。

後者の形式は、*wで指定されたワールドでDモードの計算を実行します。
*tには目的に応じた整数を指定します。
 非負:msec単位で実行時間を指定します。実行時間が過ぎると強制的に終了します。
 0: 無制限に実行します。
 負: 指定された数の絶対値の回数を上限とする変換を行います。計算途中で上限に達すると実行は終了します。

callによる実行の結果は*rに返ります。形式は( (アトムのリストを表すs式) 実行結果を表すシンボル)です。
実行結果を表すシンボルには以下のものがあります。
 true
 false
 exception
exceptionは実行中に通常の実行ではETIがランタイムエラーになるような例外が発生したことを示します。

例1:

[D]>(call (print a))
-------------------------D execution ---------------------
a
----------------------------------------------------------
succeeded.

 

例2:

(as (test *r):
(getWorldID *w)
(call (length (1 2 3) *) *w 1 *r))

例2ではクエリ(length (1 2 3) *) をカレントワールドで1 msec時間だけ実行します。


述語名/引数  (not *s)
要約 *sを実行して、*sが失敗するとnotは成功します。逆に、*sが成功するとnotは失敗します。
互換性 Win Unix
解説 notは副作用を起こします。*s中の変数が実行中に変更されると、共有するnotの外側の変数も変更されます。この変更は、結果の真偽によりません。