0
Logicbloxでモデル・セットを作成することは可能ですか?具体的には、set of Integers
、たとえば{1,4,9}
が必要です。セットが空のセットであるか、一部のエレメントがセットに属しているかどうかを確認したいと考えています。Logicbloxでのセット
create --unique
addblock <doc>
my_set(x) -> int(x).
my_set_not_empty() <- my_set(_).
my_set_empty() <- !my_set_not_empty().
</doc>
echo 'my_set'
print my_set
echo 'my_set_empty'
print my_set_empty
echo 'my_set_not_empty'
print my_set_not_empty
echo 'adding an element'
exec '+my_set(1).'
echo 'my_set'
print my_set
echo 'my_set_empty'
print my_set_empty
echo 'my_set_not_empty'
print my_set_not_empty
close --destroy
をあなたはそれが取るすべては余分にあるエンティティとしてセットをモデル化する場合:1つのセットをモデル化したい場合は、この例のようにそれのための述語を作成できるように
ありがとうございます。 'addElement [set、int] - > set'のような2次演算も定義できますか。セットと要素を受け取り、別のセットを返します。 – Shambo
あなたはそのような種類のものを定義することができますが、そこに危険な海域に入ることができます。 「別のセットを返す」という最も明白な解釈は、エンティティを作成する再帰的ルールを作成することです。デフォルトではコンパイラによって拒否されるため、非終端の計算につながる可能性があります。 あなたが冒険している場合、コンパイラがそのようなことを受け入れるように強制するプラグマがあります。 –
清算に感謝します。それは確かにかなりトリッキーです。私はそれを試してみるのは間違いありません。あなたが私があなたが言及したプラグマへのいくつかの指針を与えることができるかどうか疑問に思っていた。 – Shambo