
Hi Alson,
So why not {"hello": 1, "there": 2} ?
A comment from the peanut gallery: I took circ's comment to be a suggestion that we adopt an _idiom_. That you can non-idiomatically accomplish the same thing in Haskell by defining some datatypes and functions doesn't seem to address the core suggestion.
I'd rewrite circ's suggestion as follows: A bunch of modern and popular languages use the idiom of braces for maps (e.g. { 'a' => 1, 'b' => 2} ). Its simplicity has made maps vital parts of most programs. Much of the world has adopted this idiom and if Haskell adopts this syntactic sugar it will make it easier for others to adopt Haskell.
I am fairly certain someone could write the necessary magic so: do {'a' ~> 1; 'b' ~> 2} becomes a map without any changes to the language at all. It seems like throwing syntax at a problem should be a last resort. I often do: let (*) = (,) in ['a' * 1, 'b' * 2] I find that quite elegant as an associative list, which you can then convert to a map, a hash table, use as an associative list etc. I also think that those who are looking for Haskell will have their mind so blown by lazy evaluation that keeping their maps similar isn't so necessary :-) Thanks Neil