Suggestion: Syntactic sugar for Maps!

Wolfgang Jeltsch g9ks157k at acme.softbase.org
Thu Nov 27 18:51:23 EST 2008


Am Donnerstag, 27. November 2008 22:14 schrieb Thomas Davie:
> On 27 Nov 2008, at 19:59, circ ular wrote:
> > I suggest Haskell introduce some syntactic sugar for Maps.
> >
> > Python uses {"this": 2, "is": 1, "a": 1, "Map": 1}
> >
> > Clojure also use braces: {:k1 1 :k2 3} where whitespace is comma but
> > commas are also allowed.
> >
> > I find the import Data.Map and then fromList [("hello",1), ("there",
> > 2)] or the other form that I forgot(because it is to long!) to be to
> > long...
> >
> > So why not {"hello": 1, "there": 2} ?
>
> In a similar vein, I suggest not only to not do this, but also for
> Haskell' to remove syntactic sugar for lists (but keep it for strings)!
>
> I have two (three if you agree with my opinions on other parts of the
> language) reasons for this:
> 1) It's a special case, that doesn't gain anything much.  [a,b,c,d] is
> actually only one character shorter and not really any clearer than
> a:b:c:d:[].
> 2) Removing it would clear up the ',' character for use in infix
> constructors.
> 3) (requiring you to agree with my opinions about tuples) it would
> allow for clearing up the tuple type to be replaced with pairs
> instead.  (,) could become a *real* infix data constructor for pairs.
> This would make us able to recreate "tuples" simply based on a right
> associative (,) constructor.  I realise there is a slight issue with
> strictness, and (,) introducing more bottoms in a "tuple" than current
> tuples have, but I'm sure a strict version of the (,) constructor
> could be created with the same semantics as the current tuple.
>
> Just my 2p
>
> Thanks
>
> Tom Davie

I support this view.

Best wishes,
Wolfgang


More information about the Haskell-prime mailing list