From: GOTO Kentaro Date: 2002-05-23T16:38:05+09:00 Subject: [ruby-dev:17202] Re: [RCR] Array#rotate{,!} At Thu, 23 May 2002 16:28:40 +0900, K.Kosako wrote: > > Yukihiro Matsumotoさんの > <1022138041.552884.4151.nullmailer@picachu.netlab.jp>から > > shiftのように「いくつずらす」という指定もありえますよね。そ > > の場合はrrotate,lrotateになるのかもしれませんが。いや、逆方 > > 向は負にすればよいからやっぱり一つのメソッドで十分か。 > > 引数を回転量にするのなら、 > 正がどちら向きの回転か私には覚えられないので、 > rrotate,lrotateがいいです。 self[index] を先頭に持ってくるのは index 回 shift したときと 先頭の要素は同じなので分かりやすく覚えやすいと思いました。 def rotate(n) a = dup n.times{a.push a.shift} a end def rotate!(n) a = rotate(n) replace(a) if a != self end -- Gotoken