17.35. 条件要素評価
条件要素
eval は基本的に catch-all で、セマンティックコード(プリミティブブール値を返す)を実行できます。このコードは、ルールの LHS にバインドされていた変数と、ルールパッケージの関数を参照できます。eval を過剰に使用するとルールの宣言性が低くなり、エンジンの実行が悪くなる可能性があります。eval はパターンのどこでも使用できますが、ルールの LHS の最後の条件要素として追加することがベストプラクティスです。
Eval はインデックス化できないため、フィールドの制約として効率的ではありません。ただし、これにより、関数が時間の経過とともに変化する値を返す場合に(フィールド制約内で許可されない)場合に使用することが理想的です。