Send Beginners mailing list submissions to
[email protected]
To subscribe or unsubscribe via the World Wide Web, visit
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
or, via email, send a message with subject or body 'help' to
[email protected]
You can reach the person managing the list at
[email protected]
When replying, please edit your Subject line so it is more specific
than "Re: Contents of Beginners digest..."
Today's Topics:
1. Python's collections.defaultdict(list) in Haskell?
(Dan Stromberg)
2. Re: Python's collections.defaultdict(list) in Haskell?
(Sylvain Henry)
3. Re: Python's collections.defaultdict(list) in Haskell?
(Dan Stromberg)
----------------------------------------------------------------------
Message: 1
Date: Mon, 9 Nov 2015 18:07:49 -0800
From: Dan Stromberg <[email protected]>
To: The Haskell-Beginners Mailing List - Discussion of primarily
beginner-level topics related to Haskell <[email protected]>
Subject: [Haskell-beginners] Python's collections.defaultdict(list) in
Haskell?
Message-ID:
<caovkw57++6mtdw4cuq2d+t7g33_s2abwxt7nwkddddrtokm...@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"
I'm spending a little time here and there to learn some Haskell. I'm
coming from a chiefly Python/C/bash background.
I want to build a Data.Map where the keys are strings, and the values are
lists of strings.
In Python, collections.defaultdict(list) makes this pretty straightforward.
It gives a hash table ("dict") that has values that default to an empty
list, since list() produces an empty list. More info here:
https://docs.python.org/3/library/collections.html#collections.defaultdict
Is there an equivalent in Haskell?
Thanks!
--
Dan Stromberg
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://mail.haskell.org/pipermail/beginners/attachments/20151109/16650a46/attachment-0001.html>
------------------------------
Message: 2
Date: Tue, 10 Nov 2015 04:45:54 +0100
From: Sylvain Henry <[email protected]>
To: The Haskell-Beginners Mailing List - Discussion of primarily
beginner-level topics related to Haskell <[email protected]>
Subject: Re: [Haskell-beginners] Python's
collections.defaultdict(list) in Haskell?
Message-ID:
<capmptcu784qmwqbqvx-wm2numeogxwyo7vhrgazbvyp5xpp...@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"
import qualified Data.Map as Map
-- if your keys are unique
let xs = [("Item0", ["a","b","c"]), ("Item1", ["x","y"]), ("Item2",
["abc","def"])]
Map.fromList xs
-- if you want to combine values for keys that are equal
let xs = [("Item0", ["a","b","c"]), ("Item1", ["x","y"]), ("Item0",
["abc","def"])]
Map.fromListWith (++) xs
--
Sylvain
2015-11-10 3:07 GMT+01:00 Dan Stromberg <[email protected]>:
>
> I'm spending a little time here and there to learn some Haskell. I'm
> coming from a chiefly Python/C/bash background.
>
> I want to build a Data.Map where the keys are strings, and the values are
> lists of strings.
>
> In Python, collections.defaultdict(list) makes this pretty
> straightforward. It gives a hash table ("dict") that has values that
> default to an empty list, since list() produces an empty list. More info
> here:
> https://docs.python.org/3/library/collections.html#collections.defaultdict
>
> Is there an equivalent in Haskell?
>
> Thanks!
>
> --
> Dan Stromberg
>
> _______________________________________________
> Beginners mailing list
> [email protected]
> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://mail.haskell.org/pipermail/beginners/attachments/20151110/2b52381a/attachment-0001.html>
------------------------------
Message: 3
Date: Mon, 9 Nov 2015 21:23:27 -0800
From: Dan Stromberg <[email protected]>
To: The Haskell-Beginners Mailing List - Discussion of primarily
beginner-level topics related to Haskell <[email protected]>
Subject: Re: [Haskell-beginners] Python's
collections.defaultdict(list) in Haskell?
Message-ID:
<CAOvKW54J6S9atCjE-r04ANvu5gTWG5RVT75gC-_97ibt=n7...@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"
These are some good leads.
I'll be adding values one at a time, and yes, my keys aren't necessarily
unique.
Is there a way of cons'ing on the single values one at a time, that will
avoid the slowness of ++ ?
Thanks.
On Mon, Nov 9, 2015 at 7:45 PM, Sylvain Henry <[email protected]> wrote:
> import qualified Data.Map as Map
>
> -- if your keys are unique
> let xs = [("Item0", ["a","b","c"]), ("Item1", ["x","y"]), ("Item2",
> ["abc","def"])]
> Map.fromList xs
>
> -- if you want to combine values for keys that are equal
> let xs = [("Item0", ["a","b","c"]), ("Item1", ["x","y"]), ("Item0",
> ["abc","def"])]
> Map.fromListWith (++) xs
>
> --
> Sylvain
>
>
> 2015-11-10 3:07 GMT+01:00 Dan Stromberg <[email protected]>:
>
>>
>> I'm spending a little time here and there to learn some Haskell. I'm
>> coming from a chiefly Python/C/bash background.
>>
>> I want to build a Data.Map where the keys are strings, and the values are
>> lists of strings.
>>
>> In Python, collections.defaultdict(list) makes this pretty
>> straightforward. It gives a hash table ("dict") that has values that
>> default to an empty list, since list() produces an empty list. More info
>> here:
>> https://docs.python.org/3/library/collections.html#collections.defaultdict
>>
>> Is there an equivalent in Haskell?
>>
>> Thanks!
>>
>> --
>> Dan Stromberg
>>
>> _______________________________________________
>> Beginners mailing list
>> [email protected]
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
>>
>>
>
> _______________________________________________
> Beginners mailing list
> [email protected]
> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
>
>
--
Dan Stromberg
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://mail.haskell.org/pipermail/beginners/attachments/20151109/8a39d11f/attachment-0001.html>
------------------------------
Subject: Digest Footer
_______________________________________________
Beginners mailing list
[email protected]
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
------------------------------
End of Beginners Digest, Vol 89, Issue 14
*****************************************