訳注 原文ではRubyのメソッドを「function」と表記しています。本文中でこれらを(おそらく通常のプリミティブなメソッドと区別する意味で)「高階関数」と呼んでいることから、それに従って本記事では原文に沿って「関数」と表記します。 Enumerableで使える関数のうち、多くのRubyistたちの間で理解がなかなか進んでいないのがreduceです。「これって合計取るぐらいしか使わないよね?」なお、Ruby 2.4以降ならsumで同じことができるようになりました。するとreduceは今や用無しになってしまったのでしょうか? reduceには秘密があります。「Enumerableの他の関数は、すべてreduceで実装できる」のです。そう、最後にやったことを返すのです。 詳しく見ていく前に、Rubyに備わっている他の高階関数の動作をざっと見てみましょう。 map まずはmapから。mapはE