Suggestion: Syntactic sugar for Maps!
Neil Mitchell
ndmitchell at gmail.com
Sun Dec 14 09:35:35 EST 2008
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
More information about the Haskell-prime
mailing list