【发布时间】:2018-04-29 20:13:07
【问题描述】:
我在 sig Record 中有一个三元关系,如果前两个元素匹配,我有一个谓词 changeRecord 来修改第三个元素。但是 ++ 覆盖只检查域(第一个元素),我该怎么做?
sig Account{}
sig Record{
allowance: Account -> Account -> one Int
}
pred changeRecord(a1, a2: Account, r1, r2: Record, val: Int){
val > 0
a1 != a2
r2.allowance = r1.allowance ++ (a1 -> a2 -> val) // ***
}
*** 行当前用 a1 -> a2 -> val 替换任何以 a1 开头的元组,但我希望这种替换只发生在像 a1 -> a2 -> someothervalue 这样的行上。
【问题讨论】:
-
Sophia,你如何测试这个模型?
-
这正是我需要的例子!谢谢,这里有合金的总 n00b
标签: alloy