Questions ruby inheritance vs nested classes the tap function the reduce function iterator shorthands constant lookup operator precedence