--- Hash.new([ifnone])
--- Hash.new {|hash, key| ...}        ruby 1.7 feature

    οϥåޤifnone ϥ
    ͤ¸ߤʤΥǥեͤǤ
    ǥեͤΰˤդɬפǤ( trap::Hash )

    ruby 1.7 feature:
    ֥åꤷϡ֥åɾ̤ǥեͤˤʤ
    ͤꤵƤʤϥåǤ򻲾ȤȤ٥֥å
    ¹Ԥη̤֤ޤ֥åˤϤΥϥåȥϥå
    ȤȤΥϤޤ

        # ֥åǤϤʤǥեͤѹˤ
        # ¾ͤѹ줿褦˸
        h = Hash.new("foo")
        p h[1]                  # => "foo"
        p h[1] << "foo"         # => "foobar"
        p h[1]                  # => "foobar"
        p h[2]                  # => "foobar"


        # ֥åȤȤޤԤ
        h = Hash.new {|hash, key| hash[key] = "foo"}
        p h[1]                  # => "foo"
        p h[1] << "bar"         # => "foobar"
        p h[1]                  # => "foobar"
        p h[2]                  # => "foo"

        # ͤꤵ줿ʤȤ(fetchΤ褦)㳰򤢤褦ˤǤ
        h = Hash.new {|hash, key|
                        raise(IndexError, "hash[#{key}] has no value")
                     }
        h[1]
        # => hash[1] has no value (IndexError)

