0

Alloyの関数を使用して二項関係を出力する方法を教えてもらえますか?たとえば、学生は教師とリンクされており、学生はコースともリンクされています。生徒を入力として受け取り、教師とコースの間の二項関係を出力するにはどうすればよいですか?

4

1 に答える 1

4

このようなもの?

sig Course {}
sig Teacher {}
sig Student {
  teacher: one Teacher, 
  course: some Course
}

fun binrel [s: Student]: Teacher -> Course {
  s.teacher -> s.course
}

run {
  some s: Student | (#binrel[s] > 2)
}

関数から二項関係を返すための特別な規則はありません。あなたの質問は->、この場合、2つのスカラー(または2つの単項関係)から二項関係を構築するために使用する必要があるリレーショナル積演算子()に関するものだったと思います。

于 2013-03-10T19:40:32.890 に答える