return res
end
- redef fun iterator: IndexedIterator[E] is abstract
-
# Two sequences are equals if they have the same items in the same order.
#
# var a = new List[Int]
for e in self do res += res.hash
return res
end
+
+ redef fun iterator: IndexedIterator[E] is abstract
+
+ # Gets a new Iterator starting at position `pos`
+ #
+ # var iter = [10,20,30,40,50].iterator_from(2)
+ # assert iter.to_a == [30, 40, 50]
+ fun iterator_from(pos: Int): IndexedIterator[E]
+ do
+ var res = iterator
+ while pos > 0 and res.is_ok do
+ res.next
+ pos -= 1
+ end
+ return res
+ end
+
+ # Gets an iterator starting at the end and going backwards
+ #
+ # var reviter = [1,2,3].reverse_iterator
+ # assert reviter.to_a == [3,2,1]
+ fun reverse_iterator: IndexedIterator[E] is abstract
+
+ # Gets an iterator on the chars of self starting from `pos`
+ #
+ # var reviter = [10,20,30,40,50].reverse_iterator_from(2)
+ # assert reviter.to_a == [30,20,10]
+ fun reverse_iterator_from(pos: Int): IndexedIterator[E]
+ do
+ var res = reverse_iterator
+ while pos > 0 and res.is_ok do
+ res.next
+ pos -= 1
+ end
+ return res
+ end
end
# Sequence are indexed collection.
redef fun iterator: IndexedIterator[Char] do return self.iterator_from(0)
- # Gets a new Iterator starting at position `pos`
- #
- # var iter = "abcd".chars.iterator_from(2)
- # assert iter.to_a == ['c', 'd']
- fun iterator_from(pos: Int): IndexedIterator[Char] is abstract
-
- # Gets an iterator starting at the end and going backwards
- #
- # var reviter = "hello".chars.reverse_iterator
- # assert reviter.to_a == ['o', 'l', 'l', 'e', 'h']
- fun reverse_iterator: IndexedIterator[Char] do return self.reverse_iterator_from(self.length - 1)
-
- # Gets an iterator on the chars of self starting from `pos`
- #
- # var reviter = "hello".chars.reverse_iterator_from(2)
- # assert reviter.to_a == ['l', 'e', 'h']
- fun reverse_iterator_from(pos: Int): IndexedIterator[Char] is abstract
+ redef fun reverse_iterator do return self.reverse_iterator_from(self.length - 1)
end
# View on Buffer objects, extends Sequence