初心者レッスン
まず、最初に「Ruby初心者レッスン」前半。
今回は、参加者をグループ分けして、課題に対処していく方式。
自己紹介とかいろいろ。ちなみにグループ担当はブーンの人(id:babie)。
ひととおりイテレータのレクチャーをして課題を発表。
Enamerateモジュールのメソッドを実装する問題。
以下、僕の解答を記載しておきます。
- selectメソッド
def select2 r = [] self.each{|a| r << a if yield(a) } return r end
- rejectメソッド
def reject2 r = [] self.each{|a| r << a unless yield(a) } return r end
- detectメソッド
def detect2 self.each{|a| return a if yield(a) } end
続いて、それ以外のEnamerateモジュールの実装。
今回は、拙作のinjectとpartitionが発表対象になりました。ハズカシー(^^;
def inject2(n) s = n self.each{|a| s = yield(s, a) } return s end def partition2 ta = [] fa = [] self.each{|a| yield(a) ? ta << a : fa << a} return [ta, fa] end
各グループで課題の解答を発表。
partitionを使ったクイックソートは参考になりました。
応用が利きそうです。
ちなみに、今度からは「<<」を「クク」と呼ぶことになりました(内輪ネタ失礼)