はじめに とある本の検証のために、JavaScript(正確にはECMAScript-262 5.1)の仕様書を読んだりしていた。というのも、JavaScriptの場合、大抵のメソッドについては、どのように実装されるべきか、というアルゴリズムが定義されており、これを見ればどういう挙動になっているのかがわかるからです。詳細については、Array.prototype.reduce() - JavaScript | MDNという信頼できるドキュメントがあるので、そちらに譲るとして、そもそもreduceとは何なのかについて、せっかくなので、調べたことをメモしておきます。 reduceとは 一般的に、reduceというのを一言で説明する言葉として「折りたたみ操作」という言葉が使われることが多いです。どういうことかというと、実例として、某書に頻出する表現を使いますと: [1, 2, 3, 4].red