From: Keita Yamaguchi Date: 2007-12-23T18:37:32+09:00 Subject: [ruby-dev:32686] enum_inject の説明文 山口と申します。 リリース直前のお忙しい時期に大変細かい話で恐縮なのですが、enum.c の enum_inject における説明文に誤りがあるようです。 [1,2,3].inject(0, :+) #=> 6 [1,2,3].inject(:+, 0) # => in `inject': 0 is not a symbol (TypeError) # from -e:1:in `
' Index: enum.c =================================================================== --- enum.c (リビジョン 14517) +++ enum.c (作業コピー) @@ -370,12 +370,12 @@ /* * call-seq: - * enum.inject(sym, initial) => obj + * enum.inject(initial, sym) => obj * enum.inject(sym) => obj * enum.inject(initial) {| memo, obj | block } => obj * enum.inject {| memo, obj | block } => obj * - * enum.reduce(sym, initial) => obj + * enum.reduce(initial, sym) => obj * enum.reduce(sym) => obj * enum.reduce(initial) {| memo, obj | block } => obj * enum.reduce {| memo, obj | block } => obj @@ -403,7 +403,7 @@ * # Same using a block and inject * (5..10).inject {|sum, n| sum + n } #=> 45 * # Multiply some numbers - * (5..10).reduce(:*, 1) #=> 151200 + * (5..10).reduce(1, :*) #=> 151200 * # Same using a block * (5..10).inject(1) {|product, n| product * n } #=> 151200 * # find the longest word ---- 山口慶太 北海道大学大学院文学研究科D3 keita.yamaguchi@gmail.com