Je suis bloqué sur ce problème de devoirs de méthodes formelles et je ne suis pas sûr de ce que je ne comprends pas.Obtenir un article par sa date dans l'alliage
J'ai deux signatures, point et ToDo qui sont définis comme si:
sig Item {
due : Date lone -> Step,
category : Category lone -> Step
}
one sig ToDo {
list : (seq Item) -> Step,
current : Item lone -> Step,
completed : Item -> Step
}
Je dois définir une fonction qui insère un élément avec une date donnée et la catégorie dans la liste ensemble de ToDo. L'astuce est que l'ensemble de la liste est censé être commandé par la date d'échéance des articles. Il y a une commande à la fois pour l'étape et la date.
Ma question est: Comment puis-je obtenir l'ensemble des éléments dans ToDo.list avec une date spécifique? J'ai la fonction:
fun tasksWithDate[d : Date, st : Step, t : set Item]: set Item
Et j'ai essayé d'utiliser le code suivant (et des variations de ceux-ci) pour obtenir l'ensemble de l'article:
t.due.st.d
Cela ne fonctionne pas, et je comprendre pourquoi parce que t.due.st laisse un ensemble de dates. Cependant, d'autres tentatives de ce point ne me permettent pas d'y arriver. J'ai essayé d'utiliser des parenthèses pour évaluer la jointure entre "due.st" et "d" avant d'atteindre le t, mais cela ne fonctionne pas et j'ai essayé d'utiliser des crochets pour changer l'ordre, mais ne fonctionne pas. Je sais que je fais quelque chose de mal ici, mais je ne peux pas comprendre quoi.