2017-11-30 7 views
0

ルールが起動するたびに変数の値を増分または変更する方法はありますか? 私は以下の例で接続のためにこの値を使用するので、ルールの火災がスロットの新しい値を導入するたびに必要です。 私はデルタを星に変換する電気回路とルールを持っています。すべての変換プロダクトに対して、追加のノードがあります。単純なネットワークの場合はTという名前を付けましたが、より複雑なネットワークの場合、ルールが別のデルタに対してトリガーされるたびにTノードが取得されるため、Tノードでいっぱいになるネットワークで終わります。Jessルールが発生するたびに変数をインクリメントまたは変更する

+0

すべてのルールに1つの変数、あるルールに1つの変数、または特定のルールに変数が必要ですか?変数は事実のスロットでなければならないのか、それとも便利ではないのでしょうか? - あなたが書いたことのほとんどを理解することができませんが、とにかくそれは重要ではないかもしれません。そして、不可欠な情報が欠落しています。 – laune

+0

特定のルールが発生したときに増分する変数が1つ必要です。これはルールのRHSになります。これは、スロット値の一部を埋めるために使用されるヘルプ変数です。 – Sanja

答えて

1

Jessには特別な種類の変数、グローバル変数があります。ルールのRHSを含め、プログラムのすべての部分に表示されます。作成するには、defglobalを使用してください。

(defglobal ?*firecount* = 0) 

アスタリスクは必須です。

あなただけの他の変数と同じようにそれらを使用する:

(++ ?*firecount*) 
(printout t "fire counter = " ?*firecount* crlf) 

注意さえresetがグローバルをクリアしないこと。 - 詳細についてはJessマニュアルを参照してください。

関連する問題