🗂

Grow.rbのmy_reject問題を解いてみる

2024/12/26に公開

Grow.rbとは:

Ruby力を高めたいRubyistたちが、コードを書いたりちょっとマニアックな内容を学んだりするコミュニティです。

オリジナルのmy_rejectメソッドを作ってみようというテーマです。

テストコードはこちら。

https://github.com/grow-rb/enumerable-exercises/blob/d08568e5319c9d24a74c9cb635ed1115ad43adc3/reject/reject_test.rb#L1-L12

書いた回答がこちら。eachのみを使う縛り。

module Enumerable
  def my_reject
    result = []
    each do |i|
      result << i unless yield(i)
    end
    result
  end
end

rejectはブロックの評価が真となった要素を省くメソッド。なのでunlessを使い、yield(i)の結果が偽となる場合の要素を配列に入れて返す。

Discussion