Send Beginners mailing list submissions to
        beginners@haskell.org

To subscribe or unsubscribe via the World Wide Web, visit
        http://www.haskell.org/mailman/listinfo/beginners
or, via email, send a message with subject or body 'help' to
        beginners-requ...@haskell.org

You can reach the person managing the list at
        beginners-ow...@haskell.org

When replying, please edit your Subject line so it is more specific
than "Re: Contents of Beginners digest..."


Today's Topics:

   1. Re:  cabal install errors (Carlos J. G. Duarte)
   2. Re:  cabal install errors (Benjamin Edwards)
   3. Re:  cleanest way to unwrap a list? (Carlos J. G. Duarte)
   4. Re:  cleanest way to unwrap a list? (Tim Perry)
   5. Re:  cleanest way to unwrap a list? (Carlos J. G. Duarte)


----------------------------------------------------------------------

Message: 1
Date: Tue, 14 Aug 2012 11:54:35 +0100
From: "Carlos J. G. Duarte" <carlos.j.g.dua...@gmail.com>
Subject: Re: [Haskell-beginners] cabal install errors
To: beginners@haskell.org
Message-ID: <502a2e6b.8070...@gmail.com>
Content-Type: text/plain; charset="us-ascii"

An HTML attachment was scrubbed...
URL: 
<http://www.haskell.org/pipermail/beginners/attachments/20120814/5bc176de/attachment-0001.htm>

------------------------------

Message: 2
Date: Tue, 14 Aug 2012 13:08:49 +0100
From: Benjamin Edwards <edwards.b...@gmail.com>
Subject: Re: [Haskell-beginners] cabal install errors
To: "Carlos J. G. Duarte" <carlos.j.g.dua...@gmail.com>
Cc: beginners@haskell.org
Message-ID:
        <can6k4nj5oz2e994pv8qdn89c1emhpx5-a191f5ettzkqu8u...@mail.gmail.com>
Content-Type: text/plain; charset="iso-8859-1"

I think one point bears repeating: cabal is a build system, really. It does
a good enough job of that. It is a *terrible* package manager and using it
as one I think is a classic mistake that the community needs to address.

My two-penneth worth is this:

Use cabal-dev, or hsenv, for *everything* and 99% of your woes will go
away. The the only thing I do when getting haskell up and running is to get
cabal-dev installed and it's dependencies in the cabal per user pkg store
and then cabal-dev sandboxes for everything from then on.
On Aug 14, 2012 11:57 AM, "Carlos J. G. Duarte" <carlos.j.g.dua...@gmail.com>
wrote:

>  On 08/13/12 22:19, Gregory Guthrie wrote:
>
> Thanks, I'll try that, but it looks like it could be a lot of maintenance and 
> manual cleanup!
>
> I haven't knowingly done any manual upgrades of core packages, but I have 
> done "update"s as asked by cabal when it thinks the database is getting old. 
> I have had such pedestrian usage that I would not have expected to have 
> goofed up the database!  :-)
>
> Cabal seems to be more troublesome that other various *package managers* like 
> apt, etc...
>
>
> Please see this:
> http://ivanmiljenovic.wordpress.com/2010/03/15/repeat-after-me-cabal-is-not-a-package-manager/
>
> But yes, cabal or not, I agree that there should be a better system for
> managing haskell packages, like pip, gem or cpan... but that boils down to
> the problem that some has to do it, and people who are able to do it** are
> often too busy for that.
>
> ** and that doesn't include me, as I'm just starting to explore Haskell on
> my spare time.
>
> All in all, cabal suits me even with its idiosyncrasies.
>
>
> _______________________________________________
> Beginners mailing list
> Beginners@haskell.org
> http://www.haskell.org/mailman/listinfo/beginners
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://www.haskell.org/pipermail/beginners/attachments/20120814/4fb0d351/attachment-0001.htm>

------------------------------

Message: 3
Date: Tue, 14 Aug 2012 19:05:56 +0100
From: "Carlos J. G. Duarte" <carlos.j.g.dua...@gmail.com>
Subject: Re: [Haskell-beginners] cleanest way to unwrap a list?
To: beginners@haskell.org
Message-ID: <502a9384.9090...@gmail.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed

Ok, you all have been showing examples of running functions over 
elements. Add one, append value, and so on.
This works well if there's one or more operations to apply indistinctly 
to a number of elements.

Now, what if we just want to make a single operation to a single element?
For example, let's say I have this square matrix
[[1,2,3],
  [4,5,6],
  [7,8,9]]

how can we increment the value 5 (position 2,2) *and* decrement the 
value 7 (position 3,1)?

This is a made up example of course, I just want to see / learn if 
there's a way to apply a function to a specific subset of elements.

On 08/14/12 00:06, Jack Henahan wrote:
> Equally,
>
>      let map' = map . map
>      map' (+1) . map (++[3]) $ [[1,2],[3,4]]
>      -- [[2,3,4],[4,5,4]]
>
> And you can really keep stacking those up. I think this approach will be 
> cleaner in the long run.
>
> For instance, let's start naming our parts.
>     
>     let list = [[1,2],[3,4]]
>     let map' = map . map
>     let addOne = map' (+1)
>     let appendThree = map (++[3])
>     let reverseInner = map reverse
>
> So, from here we can do the following:
>     
>     list
>     -- [[1,2],[3,4]]
>
>     -- the first example
>     addOne list
>     -- [[2,3],[4,5]]
>     
>     -- now the second example
>     addOne . appendThree $ list
>     -- [[2,3,4],[4,5,4]]
>
>     -- now add one to all members of the list, append three to the list, 
> reverse the inner lists,
>     -- then add one to all members of the new list
>
>     addOne . reverseInner . appendThree . addOne $ list
>     -- [[4,4,3],[4,6,5]]
>
> Now how would you construct that as a list comprehension? With the method 
> I've proposed, you need
> only use map to operate on the nested lists themselves and map' to operate on 
> the elements of those
> lists.
>
> ====
> Jack Henahan
> jhena...@uvm.edu
>        
>
> On Aug 13, 2012, at 6:41 PM, Christopher Howard 
> <christopher.how...@frigidcode.com> wrote:
>
>> On 08/12/2012 09:37 PM, Shakthi Kannan wrote:
>>> Hi,
>>>
>>> --- On Mon, Aug 13, 2012 at 10:51 AM, Christopher Howard
>>> <christopher.how...@frigidcode.com> wrote:
>>> | Say, for example, I have the list
>>> | [[1,2],[3,4]] and want to add 1 to each inner element, resulting in
>>> | [[2,3],[4,5]].
>>> \--
>>>
>>> Like this?
>>>
>>> ghci> let xxs = [[1,2], [3,4]]
>>>
>>> ghci> [ [ x+1 | x <- xs] | xs <- xxs ]
>>> [[2,3],[4,5]]
>>>
>>> SK
>>>
>> Thanks everyone for the responses. I found the list comprehension
>> approach satisfactory, as it allows me to cleanly modify each layer of
>> the nested array as I unwrap it:
>>
>> code:
>> --------
>> b = [[ x+1
>>     | x <- xs ++ [3] ]
>>     | xs <- [[1,2],[3,4]] ]
>>
>> *Main> b
>> [[2,3,4],[4,5,4]]
>> --------
>>
>> The only downside is that I have to write the layers out in reverse of
>> the way I would normally think of them, but that isn't too big of a
>> challenge.
>>
>> I'm not sure how that would be done with map in a way that would be neat
>> and readable and wouldn't require declaring extra identifiers. I can't
>> give a fair evaluation of the Lens approach because I don't understand
>> enough of the theory yet.
>>
>> -- 
>> frigidcode.com
>> indicium.us
>>
>> _______________________________________________
>> Beginners mailing list
>> Beginners@haskell.org
>> http://www.haskell.org/mailman/listinfo/beginners
>
> _______________________________________________
> Beginners mailing list
> Beginners@haskell.org
> http://www.haskell.org/mailman/listinfo/beginners
>




------------------------------

Message: 4
Date: Tue, 14 Aug 2012 11:35:32 -0700
From: Tim Perry <tim.v...@gmail.com>
Subject: Re: [Haskell-beginners] cleanest way to unwrap a list?
To: "Carlos J. G. Duarte" <carlos.j.g.dua...@gmail.com>
Cc: beginners@haskell.org
Message-ID:
        <CAFVgASVdA2MBJgT68CgUZuiDbZ-B-GQRPBwdtnSz9UG=qgi...@mail.gmail.com>
Content-Type: text/plain; charset="iso-8859-1"

There is a way. Please try to figure it out and if you fail post back with
your code and we can help you from there.



On Tue, Aug 14, 2012 at 11:05 AM, Carlos J. G. Duarte <
carlos.j.g.dua...@gmail.com> wrote:

> Ok, you all have been showing examples of running functions over elements.
> Add one, append value, and so on.
> This works well if there's one or more operations to apply indistinctly to
> a number of elements.
>
> Now, what if we just want to make a single operation to a single element?
> For example, let's say I have this square matrix
> [[1,2,3],
>  [4,5,6],
>  [7,8,9]]
>
> how can we increment the value 5 (position 2,2) *and* decrement the value
> 7 (position 3,1)?
>
> This is a made up example of course, I just want to see / learn if there's
> a way to apply a function to a specific subset of elements.
>
>
> On 08/14/12 00:06, Jack Henahan wrote:
>
>> Equally,
>>
>>      let map' = map . map
>>      map' (+1) . map (++[3]) $ [[1,2],[3,4]]
>>      -- [[2,3,4],[4,5,4]]
>>
>> And you can really keep stacking those up. I think this approach will be
>> cleaner in the long run.
>>
>> For instance, let's start naming our parts.
>>         let list = [[1,2],[3,4]]
>>     let map' = map . map
>>     let addOne = map' (+1)
>>     let appendThree = map (++[3])
>>     let reverseInner = map reverse
>>
>> So, from here we can do the following:
>>         list
>>     -- [[1,2],[3,4]]
>>
>>     -- the first example
>>     addOne list
>>     -- [[2,3],[4,5]]
>>         -- now the second example
>>     addOne . appendThree $ list
>>     -- [[2,3,4],[4,5,4]]
>>
>>     -- now add one to all members of the list, append three to the list,
>> reverse the inner lists,
>>     -- then add one to all members of the new list
>>
>>     addOne . reverseInner . appendThree . addOne $ list
>>     -- [[4,4,3],[4,6,5]]
>>
>> Now how would you construct that as a list comprehension? With the method
>> I've proposed, you need
>> only use map to operate on the nested lists themselves and map' to
>> operate on the elements of those
>> lists.
>>
>> ====
>> Jack Henahan
>> jhena...@uvm.edu
>>
>> On Aug 13, 2012, at 6:41 PM, Christopher Howard <christopher.howard@**
>> frigidcode.com <christopher.how...@frigidcode.com>> wrote:
>>
>>  On 08/12/2012 09:37 PM, Shakthi Kannan wrote:
>>>
>>>> Hi,
>>>>
>>>> --- On Mon, Aug 13, 2012 at 10:51 AM, Christopher Howard
>>>> <christopher.howard@**frigidcode.com<christopher.how...@frigidcode.com>>
>>>> wrote:
>>>> | Say, for example, I have the list
>>>> | [[1,2],[3,4]] and want to add 1 to each inner element, resulting in
>>>> | [[2,3],[4,5]].
>>>> \--
>>>>
>>>> Like this?
>>>>
>>>> ghci> let xxs = [[1,2], [3,4]]
>>>>
>>>> ghci> [ [ x+1 | x <- xs] | xs <- xxs ]
>>>> [[2,3],[4,5]]
>>>>
>>>> SK
>>>>
>>>>  Thanks everyone for the responses. I found the list comprehension
>>> approach satisfactory, as it allows me to cleanly modify each layer of
>>> the nested array as I unwrap it:
>>>
>>> code:
>>> --------
>>> b = [[ x+1
>>>     | x <- xs ++ [3] ]
>>>     | xs <- [[1,2],[3,4]] ]
>>>
>>> *Main> b
>>> [[2,3,4],[4,5,4]]
>>> --------
>>>
>>> The only downside is that I have to write the layers out in reverse of
>>> the way I would normally think of them, but that isn't too big of a
>>> challenge.
>>>
>>> I'm not sure how that would be done with map in a way that would be neat
>>> and readable and wouldn't require declaring extra identifiers. I can't
>>> give a fair evaluation of the Lens approach because I don't understand
>>> enough of the theory yet.
>>>
>>> --
>>> frigidcode.com
>>> indicium.us
>>>
>>> ______________________________**_________________
>>> Beginners mailing list
>>> Beginners@haskell.org
>>> http://www.haskell.org/**mailman/listinfo/beginners<http://www.haskell.org/mailman/listinfo/beginners>
>>>
>>
>> ______________________________**_________________
>> Beginners mailing list
>> Beginners@haskell.org
>> http://www.haskell.org/**mailman/listinfo/beginners<http://www.haskell.org/mailman/listinfo/beginners>
>>
>>
>
> ______________________________**_________________
> Beginners mailing list
> Beginners@haskell.org
> http://www.haskell.org/**mailman/listinfo/beginners<http://www.haskell.org/mailman/listinfo/beginners>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://www.haskell.org/pipermail/beginners/attachments/20120814/54a50c1b/attachment-0001.htm>

------------------------------

Message: 5
Date: Tue, 14 Aug 2012 22:50:42 +0100
From: "Carlos J. G. Duarte" <carlos.j.g.dua...@gmail.com>
Subject: Re: [Haskell-beginners] cleanest way to unwrap a list?
To: Tim Perry <tim.v...@gmail.com>
Cc: beginners@haskell.org
Message-ID: <502ac832.3040...@gmail.com>
Content-Type: text/plain; charset="us-ascii"

An HTML attachment was scrubbed...
URL: 
<http://www.haskell.org/pipermail/beginners/attachments/20120814/4ea482aa/attachment.htm>

------------------------------

_______________________________________________
Beginners mailing list
Beginners@haskell.org
http://www.haskell.org/mailman/listinfo/beginners


End of Beginners Digest, Vol 50, Issue 15
*****************************************

Reply via email to