【发布时间】:2015-02-20 09:49:57
【问题描述】:
我需要在 OCL 中执行 2 个用于收集的函数:forAll 和 filter。诀窍是我只能使用 iterator。
这是我带来的:
context Collection(T)::forAll(expr) : Boolean
body : self -> iterate(t: T, acc: Boolean = true | expr(t) and acc)
context Collection(T)::filter(expr) : Collection(T)
body : self -> iterate(t: T, acc: Collection(T) = {} | if expr(t) then acc->include(t) else acc endif
请告诉我是对是错。
【问题讨论】:
-
呵呵。这是我第一眼看到的。您应该在问题中添加 OCL :-)
-
我不是 OCL 专家,但对我来说似乎没问题。请问您在哪种情况下需要它?
-
我正在准备 OCL 测试,这是示例问题之一。
-
这是 100% 学术代码 :)。
-
我是这么认为的。在这种情况下,你的老师最终会纠正你;-) 但正如所说:看起来不错。