Filter: reject duplicates.

Elements already seen are rejected.

Important: rely on == and hash Important: require O(m) in memory, where m is the total number of uniq items.

assert [1,2,1,1,1,3,2].iterator.uniq.to_a        ==  [1,2,3]

REQUIRE: self isa Iterator[Object]

Property definitions

pipeline :: pipeline $ Iterator :: uniq
	# Filter: reject duplicates.
	# Elements already seen are rejected.
	#
	# Important: rely on `==` and `hash`
	# Important: require O(m) in memory, where m is the total number of uniq items.
	#
	#     assert [1,2,1,1,1,3,2].iterator.uniq.to_a	     ==  [1,2,3]
	#
	# REQUIRE: self isa Iterator[Object]
	fun uniq: Iterator[E]
	do
		assert self isa Iterator[Object]
		return new PipeUniq[E](self)
	end
lib/pipeline/pipeline.nit:46,2--59,4