我被这个正式的家庭作业问题困住了,我不确定我没有做对什么。
我有两个签名,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列表集中。诀窍在于,列表集应该按项目的截止日期排序。步骤和日期都有订单。
我的问题是:如何获取ToDo中的项目集。列出具体日期?我有一个函数:
fun tasksWithDate[d : Date, st : Step, t : set Item]: set Item
我尝试使用以下代码(及其变体)来获取项目集:
t.due.st.d
这不管用,我明白为什么,因为t.due。st会留下一组日期。然而,从那一点出发的其他尝试并没有让我达到目的。在到达t之前,我尝试使用括号来计算“due.st”和“d”之间的连接,但这不起作用,我尝试使用方括号来更改顺序,但这不起作用。我知道我做错了什么,但我不知道是什么。