考虑合金中的以下规范:
sig Books {}
fun f[b:Books] : Books {
{b':Books | b' = Books -b }
}
run show {}
假设我们有一个实例 $univ = {Books$0, Books$1, Books$2}$。用 $Books$0$ 评估函数 f 会产生空集而不是 ${Books$1, Books$2}$:
f[Books$0]
{}
任何想法为什么?
考虑合金中的以下规范:
sig Books {}
fun f[b:Books] : Books {
{b':Books | b' = Books -b }
}
run show {}
假设我们有一个实例 $univ = {Books$0, Books$1, Books$2}$。用 $Books$0$ 评估函数 f 会产生空集而不是 ${Books$1, Books$2}$:
f[Books$0]
{}
任何想法为什么?