我被困在这个正式的方法作业问题上,我不确定我做错了什么。
我有两个签名,Item 和 ToDo,它们的定义如下:
sig Item {
due : Date lone -> Step,
category : Category lone -> Step
}
one sig ToDo {
list : (seq Item) -> Step,
current : Item lone -> Step,
completed : Item -> Step
}
我必须定义一个函数,它将具有给定日期和类别的项目插入到待办事项列表集中。诀窍是列表集应该按项目的到期日期排序。步骤和日期都有排序。
我的问题是:如何在 ToDo.list 中获取具有特定日期的项目集?我有这个功能:
fun tasksWithDate[d : Date, st : Step, t : set Item]: set Item
我尝试使用以下代码(及其变体)来获取项目集:
t.due.st.d
这不起作用,我理解为什么,因为 t.due.st 留下了一组日期。然而,从那时起的其他尝试并没有让我到达那里。在到达 t 之前,我尝试使用括号来评估“due.st”和“d”之间的连接,但这不起作用,我尝试使用方括号来更改顺序,但是不起作用。我知道我在这里做错了什么,但我不知道是什么。