clone from http://rosettacode.org/wiki/Associative_array/Creation