グループ ルール

グループ ルールはキャッシュされず、値を戻さない特別なルールです。ユーザまたは他のルールによって呼び出されません。1 つまたは複数の標準を設定するために使用されます。

構文

グループ ルールは、特別な構文を使用します。タイプがないので、タイプ フラグは使用しません。

Group <identifier> (GivenList)
   Statements
End Group

指定されたパラメータ(“givens”)の一覧のメンバがグループ ルールをアクティブにできます。グループ ルール ステートメント ブロックでは、少なくとも 1 つのステートメントが、標準と宣言された基本ルールへの割り当てである必要があります。

グループ ルールは、特定のパラメータのセットが与えられた場合に標準がどのように計算されるかを宣言します。グループ ルールを使用することで、デザインは基本的な詳細を指定するための別の方法をサポートできます。

たとえば、単純な円を多くの方法で定義することができます(中心と半径を使用する方法、直径と 2 つの接線を使用する方法など)。それぞれの方法は適切ですが、単純な円を定義するために多くのオプションを提示することは実践的ではありません。

一般的に、システムは使用できるもののサブセットを表示します。Intent は部分仕様と呼ばれる言語ベースのソリューションを使用し、ルールを使用することで部分的なソリューションを指定します。部分的なソリューションが十分に使用できる場合には、完全な仕様が形成されます。

以下に典型的なケースを示します。半径と直径は、どちらももう一方から計算できますが、特定の一方を指定することが便利な場合もあります。

Canonical Parameter Rule radius As Number = Required
Parameter Rule diameter As Number = radius * 2
Group diameter_only (diameter)
   radius = diameter / 2
End Group

2 つのパラメータ、直径および半径が定義されています。また、半径は標準として宣言されています。パラメータ値が指定されると、これが最初に使用されます。

注: パラメータでもある標準が、擬似グループ ルールとして機能します。指定された場合、自動的に計算可能とみなされます。

直径パラメータが指定されている場合、半径を評価することで diameter_only グループ ルールが呼び出され、半径が計算されます。