2016-12-06 2 views
1

私はプロジェクトを少し力強くしようとしていますので、私はadd関数を書くことに決めました。私は合金のウェブサイトにあるこの例からインスピレーションを得ました:合金のオブジェクトをオーバーライドする

pred add [b, b': Book, n: Name, t: Target] { 
    b'.addr = b.addr + n->t 
} 

しかし、私がしたいのは、2つのオブジェクト "b"と "b '"(同じオブジェクトに追加したいのですが)を上書きする方法ですが、私はそれを行う方法を見つけることができないようです。

誰もが、私は感謝

答えて

0

だろうという考えを持っている場合あなたは何が不足していません。あなたが "同じオブジェクトに追加する"方法を見つけることができない理由は、あなたができないことです。合金には突然変異がない。モデル内のオブジェクトを変更することはできません。

変異を含むアプリケーションは、例ではaddのようにモデル化されています。プレ・ステートとポストステートを示す2つのパラメータがあります。一部Nトンそのような追加[B1が存在する場合にのみあればそのようなモデルでは、任意の二つBookオブジェクトB1B2は、アプリケーションドメイン内の同じ可変Bookオブジェクトの異なる状態を示すであろう、 b2、n、t]が成り立つ。

+0

私はそれを理解しましたが、私はまだ方法を見つけることを望んでいた! thnxはあなたの答えのためにたくさん! –

関連する問題