On 19 Jul 2003 at 17:41, Brian Candler wrote: > Both versions generate a temporary copy of the array, e.g. self[1..-1] does > that too. But you can avoid it: > > module Enumerable > def ordered? > first = true > prev = nil > each do |item| > if first > first = false > else > return false if prev > item > end > prev = item > end > return true > end > end I'm not Dave Thomas :-) but you can also use inject here: module Enumerable def ordered? inject { | last, item | return false unless last < item; item } true end end Regards, Pit