【发布时间】:2015-03-07 23:52:02
【问题描述】:
我有以下签名:
sig Id, Grade {}
sig Foo {
result : Id -> Grade
}
现在我想创建一个函数,它接收一个 foo 变量并返回所有关联的 Foo -> Grade 关系:
fun results[ id : Id ]: Foo -> Grade {
//return all Foo->Grade binary relationships such that "id -> grade" in Foo.result
}
即
所以如果“结果”关系是这样的:
(foo0, id0, grade0)
(foo0, id1, grade0)
(foo0, id2, grade1)
(foo1, id0, grade2)
(foo1, id3, grade3)
(foo2, id0, grade0)
我运行函数“results[id0]”我会得到:
(foo0, grade0)
(foo1, grade2)
(foo2, grade0)
现在我想我会使用某种集合推导,但问题是集合推导仅适用于一元集,而不适用于二元集。
【问题讨论】:
标签: alloy