如何在我的 Eiffel 中跨循环使用后置条件遍历链表?

How to travse a linked list in my postcodition use across loop in Eiffel?

我尝试使用 跨越 1|..|list.count 作为 j 全部 list.i_th(z) ~ 旧 list.i_th(z) 结束

但它说未知标识符 z。这个语法有什么问题??

语法正确。但是,没有声明名称 z 的标识符,因此出现错误。有一个游标变量 j 代替。使用 j.item.

访问当前光标位置的项目

另一个问题是 j 是在当前上下文(后置条件)中求值的,但是旧表达式是在执行特征主体之前求值的,其中 j 不存在。结果,带有 old list.i_th (j.item) 的代码将无法编译。换句话说,该值应该取自旧列表但具有当前索引。表达式 (old list).i_th (j.item) 可以解决问题。

但这仍然不能满足需要。原来 old list = list 因为对列表对象的引用保持不变。要获取旧元素,需要列表的副本:(old list.twin).

结合以上所有内容,表达式应该类似于 across 1 |..| list.count as j all list.i_th (j.item) ~ (old list.twin).i_th (j.item) end.