Procs and brackets

Looking things up in a hash is concise, readable and fun. :smile:

dictionary['ruby']
# => 'A precious stone'

Finding items in an array is not that much fun. :disappointed:

term = 'ruby'
(list_of_definitions.find { |definition| definition[:term] == term } || {})[:definition]
# => 'A precious stone'

We can have our delicious Hash lookup notation, for any type of lookup we want with a little proc trickery. :sparkles:

dictionary = -> (word) {
  (
    list_of_definitions.find { |definition| definition[:term] == word } || {}
  )[:definition]
}
dictionary['ruby']
# => 'A precious stone'

Ruby’s procs support the [] notation for their invocation (prc[]). Using that knowledge we can present any complex lookup with our syntactic sugar. :+1: