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 _______________________________________________ Haskell-prime mailing list Haskell-prime@haskell.org http://www.haskell.org/mailman/listinfo/haskell-prime