reduce()の戻り値はイテレイタではなく、計算結果。reduce()さえあれば、ほかの畳み込む関数を作れる。組み込み関数は最適化されているはずで、無闇に自作関数を使うべきではない。bで作っていたが、隣同士で演算することもなかった。それから、この例では、条件によっては途中で脱出できる。返す値はリストでもいいreduce()は、別に畳み込まなくてもいい。reduce()に渡す第1引数がリストを返すようにすれば、reduce()の結果もリストになる。