the original solution is wrong

1. it returns an array
2. do not use assignment expression as return value.  It has quirks.  E.g  

```Ruby
    # incorrect. 
    # assignment expression as return value
    # cryptic error msg
    # NoMethodError: undefined method `[]=' for nil:NilClass
    # from (irb):41:in `block in irb_binding'
    # from (irb):41:in `each'
    # from (irb):41:in `reduce'
    # from (irb):41
    # from /Users/bai/.rvm/rubies/ruby-2.0.0-p247/bin/irb:13:in `<main>'
    %w(a b c).reduce({}) { |a, e| a[e] = nil }
    # correct
    %w(a b c).reduce({}) { |a, e| a[e] = nil }