3 ms·
slightly more idiomatic, though perhaps not quite as clear as the clojure: def unique_keys(*hashes) result = {} hashes.each do |hash| r
by griffindy 14y ago
slightly more idiomatic, though perhaps not quite as clear as the clojure:
def unique_keys(*hashes)
result = {}
hashes.each do |hash|
result.merge! hash
end
return result.keys.map(&:to_s).sort.join(', ') unless result.empty?
'<none>'
end
https://gist.github.com/4695388 https://gist.github.com/4695388
- danneu 14y agoI think accumulating an initialized variable in an imperative #each loop is decidedly unidiomatic, just something we tend to do until we really embrace things like #map, #partition, #select, #reduce, etc. (And what a glorious day that is!) I reckon what makes his first example somewhat unidiomatic is the arbitrary lambda and the use & inner return from the #taps block. His updated example is just good ol tacit Ruby. But then again the amount of times I see an #each block with inner logic used instead of a simple point-free one-liner in Ruby really just proves your point.