Rubyでreverse

Rubyでもreverseを書いてみました.

class Array
  def myreverse
    s = self.dup
    rev = []
    while t = s.shift
      rev.unshift t
    end
    rev
  end
end

class String
  def myreverse
    self.split(//).myreverse.to_s # 無理矢理感が漂う
  end
end

ごくごく簡単ですけど.
irbで試してみます.

irb(main):001:0> require 'myreverse.rb'
=> true
irb(main):002:0> arr = [1,2,3]
=> [1, 2, 3]
irb(main):003:0> arr.myreverse
=> [3, 2, 1]
irb(main):004:0> str = "Ruby"
=> "Ruby"
irb(main):005:0> str.myreverse
=> "ybuR"

コードは勿論,実行速度もHaskellの方が早いんでしょうね.しかし,Rubyは楽しいなぁ.