Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Enumerable#tally since Ruby 2.7 #2265

Merged
merged 2 commits into from
Jun 2, 2020
Merged

Add Enumerable#tally since Ruby 2.7 #2265

merged 2 commits into from
Jun 2, 2020

Conversation

pocke
Copy link
Member

@pocke pocke commented May 22, 2020

#2071

Ruby 2.7で追加された Enumerable#tally のドキュメントを追加します。

RDoc: https://docs.ruby-lang.org/en/2.7.0/Enumerable.html#method-i-tally

サンプルコードはRDocのものを持ってきています。

@scivola
Copy link
Contributor

scivola commented May 23, 2020

同じかどうかを何で判定しているかが書かれているとありがたいと思いました。
equal? ほど厳しくなく,== ほどゆるくないようなので,eql? ですかね?
rdoc にも書いていませんね。

Enumerable#uniq などにも同じことが言え,これはこれで別 issue を立てる必要がありそうです。

@pocke
Copy link
Member Author

pocke commented May 23, 2020

実装を読んだ感じ、eql?の比較が使われているようです。
Rubyのコードとして書くと次のような実装です。

def tally
  hash = {}
  each do |value|
    if hash[value]
      hash[value] += 1
    else
      hash[value] = 1
    end
  end
  hash
end

なので、 eql? で比較していると追記しました。 674f91f

@pocke
Copy link
Member Author

pocke commented May 23, 2020

uniq に関しては調べていないので、issueの作成をお願いできるでしょうか? 🙏

@scivola
Copy link
Contributor

scivola commented May 23, 2020

書きました。
#2269

@znz znz merged commit 653fbca into rurema:master Jun 2, 2020
@pocke pocke deleted the tally branch June 2, 2020 11:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants