TODESKING
技術ブログ

1_as_identity_functionという超便利gemを作ったけどRuby 2.2により有難味が薄れる模様

Ruby2.2でObject#itselfというメソッドが導入されるとのこと

group_by等のメソッドで「その要素自身」を返すブロックを渡したいことはたまにあるので、{|x| x} のかわりに&:itselfって書けばいいのは便利ですね。

という記事を読んで、以前同じ動機でgemを作ったことを思い出した。

1_as_identity_function

名前そのままなんだけど、なんと!! &1{|x| x} 相当です。便利。

1
2
3
group_by {|x| x}
group_by(&:itself)
group_by(&1)

itselfなげえ……

ちなみになぜ&1かというと、 圏論ではidentityを表現するのに1を使う風習があって かっこよかったからです

Comments