Skip to content

Instantly share code, notes, and snippets.

@jarsen
Created September 27, 2012 20:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jarsen/3796144 to your computer and use it in GitHub Desktop.
Save jarsen/3796144 to your computer and use it in GitHub Desktop.
strange.rb
foo = %w{cat dog dog cat cat cat dog cat dog dog cat cat dog dog}
bar = %w{yes no yes yes yes no no yes no yes no no yes yes}
puts "Foo: #{foo}"
puts "Bar: #{bar}"
histogram = foo.inject(Hash.new(0)) { |h,v| h[v] += 1; h }
puts histogram
j = 0
foobar = foo.inject(Hash.new([])) do |h,v|
h[v] << bar[j]
puts "bar[#{j}] = #{bar[j]}"
puts "h[#{v}] = #{h[v]}"
j += 1
h
end
puts "foobar: #{foobar}" # {} ???????
puts "foobar['cat'] #{foobar['cat']}" # not nil!!!?!?!?!?
puts "foobar.size = #{foobar.size}" # 0 ?!?!?!?!?
j = 0
foobar = foo.inject({}) do |h,v|
h[v] ||= []
h[v] << bar[j]
puts "bar[#{j}] = #{bar[j]}"
puts "h[#{v}] = #{h[v]}"
j += 1
h
end
puts "foobar: #{foobar}"
puts "foobar['cat'] #{foobar['cat']}"
puts "foobar.size = #{foobar.size}"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment