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: Updating lists inside another list (Lee Duhem) 2. Re: decorate-sort-undecorate in haskell (Brandon S. Allbery KF8NH) 3. Re: decorate-sort-undecorate in haskell (Henk-Jan van Tuyl) 4. Re: decorate-sort-undecorate in haskell (Daniel Fischer) 5. Re: decorate-sort-undecorate in haskell (Ivan Uemlianin) 6. HXT: Gathering text from Nodes (aditya siram) 7. [SOLVED]Re: HXT: Gathering text from Nodes (aditya siram) 8. lhs2TeX (Thomas Friedrich) 9. Re: decorate-sort-undecorate in haskell (Brandon S. Allbery KF8NH) ---------------------------------------------------------------------- Message: 1 Date: Tue, 23 Jun 2009 15:19:50 +0800 From: Lee Duhem <lee.du...@gmail.com> Subject: Re: [Haskell-beginners] Updating lists inside another list To: Joel Neely <joel.ne...@gmail.com> Cc: beginners <beginners@haskell.org> Message-ID: <da43c2e0906230019h5c37f8c5pdd4640de758b7...@mail.gmail.com> Content-Type: text/plain; charset=UTF-8 On Tue, Jun 23, 2009 at 11:29 AM, Joel Neely<joel.ne...@gmail.com> wrote: > WRT the first case, I would have expected something like; > > addToInnerList [] a b = [(a,[b])] > > on the assumption that one "grows" a structure from an empty state. > Your thoughts? > I think it isn't what Aaron wants, that is "to add an element to the inner list of the pair with the head value of my choosing". Anyway, it is an option. lee ------------------------------ Message: 2 Date: Tue, 23 Jun 2009 08:58:11 -0400 From: "Brandon S. Allbery KF8NH" <allb...@ece.cmu.edu> Subject: Re: [Haskell-beginners] decorate-sort-undecorate in haskell To: Ivan Uemlianin <i...@llaisdy.com> Cc: beginners@haskell.org Message-ID: <ebb8fa24-8555-42cb-99fc-8c5e08cb9...@ece.cmu.edu> Content-Type: text/plain; charset="us-ascii" On Jun 22, 2009, at 06:03 , Ivan Uemlianin wrote: > I'm learning Haskell from a background in Python, and I'm just > looking at the sort and sortBy functions in Data.List. In Python, > the decorate-sort-undecorate pattern is a popular alternative to > using an explicit compare function. For example, to sort a list of > lists by It's fairly common, considering that decorate-sort-undecorate is a functional programming idiom dating back to Lisp. In Haskell it's usually expressed with the decoration in a tuple such that the default sort can be used. > map snd . sort . map (\x -> (x,decorate x)) Fancier versions use arrows to make the decorate part cleaner: > map snd . sort . map (decorate &&& id) -- brandon s. allbery [solaris,freebsd,perl,pugs,haskell] allb...@kf8nh.com system administrator [openafs,heimdal,too many hats] allb...@ece.cmu.edu electrical and computer engineering, carnegie mellon university KF8NH -------------- next part -------------- A non-text attachment was scrubbed... Name: PGP.sig Type: application/pgp-signature Size: 195 bytes Desc: This is a digitally signed message part Url : http://www.haskell.org/pipermail/beginners/attachments/20090623/d0874055/PGP-0001.bin ------------------------------ Message: 3 Date: Tue, 23 Jun 2009 15:42:59 +0200 From: "Henk-Jan van Tuyl" <hjgt...@chello.nl> Subject: Re: [Haskell-beginners] decorate-sort-undecorate in haskell To: "Brandon S. Allbery KF8NH" <allb...@ece.cmu.edu>, "Ivan Uemlianin" <i...@llaisdy.com> Cc: beginners@haskell.org Message-ID: <op.uvzcdysypz0...@zen5.router.home> Content-Type: text/plain; format=flowed; delsp=yes; charset=iso-8859-15 On Tue, 23 Jun 2009 14:58:11 +0200, Brandon S. Allbery KF8NH <allb...@ece.cmu.edu> wrote: > On Jun 22, 2009, at 06:03 , Ivan Uemlianin wrote: >> I'm learning Haskell from a background in Python, and I'm just >> looking at the sort and sortBy functions in Data.List. In Python, >> the decorate-sort-undecorate pattern is a popular alternative to >> using an explicit compare function. For example, to sort a list of >> lists by > > It's fairly common, considering that decorate-sort-undecorate is a > functional programming idiom dating back to Lisp. In Haskell it's > usually expressed with the decoration in a tuple such that the default > sort can be used. > > > map snd . sort . map (\x -> (x,decorate x)) > > Fancier versions use arrows to make the decorate part cleaner: > > > map snd . sort . map (decorate &&& id) > The simplest form for e.g. sorting by length is: > sortByLength = sortBy (comparing length) -- Met vriendelijke groet, Henk-Jan van Tuyl -- http://functor.bamikanarie.com http://Van.Tuyl.eu/ -- ------------------------------ Message: 4 Date: Tue, 23 Jun 2009 16:13:04 +0200 From: Daniel Fischer <daniel.is.fisc...@web.de> Subject: Re: [Haskell-beginners] decorate-sort-undecorate in haskell To: beginners@haskell.org Message-ID: <200906231613.04553.daniel.is.fisc...@web.de> Content-Type: text/plain; charset="iso-8859-15" Am Dienstag 23 Juni 2009 15:42:59 schrieb Henk-Jan van Tuyl: > On Tue, 23 Jun 2009 14:58:11 +0200, Brandon S. Allbery KF8NH > > <allb...@ece.cmu.edu> wrote: > > On Jun 22, 2009, at 06:03 , Ivan Uemlianin wrote: > >> I'm learning Haskell from a background in Python, and I'm just > >> looking at the sort and sortBy functions in Data.List. In Python, > >> the decorate-sort-undecorate pattern is a popular alternative to > >> using an explicit compare function. For example, to sort a list of > >> lists by > > > > It's fairly common, considering that decorate-sort-undecorate is a > > functional programming idiom dating back to Lisp. In Haskell it's > > usually expressed with the decoration in a tuple such that the default > > sort can be used. > > > > > map snd . sort . map (\x -> (x,decorate x)) Typo: map snd . sort . map (\x -> (decorate x,x)) > > > > Fancier versions use arrows to make the decorate part cleaner: > > > map snd . sort . map (decorate &&& id) > > The simplest form for e.g. sorting by length is: > > sortByLength = sortBy (comparing length) But that is an example where the decoration really shines, except all lists are very short: Prelude> :set +s Prelude> let lens :: [Int]; lens = [(k^2+3*k-2) `mod` 5431 | k <- [1 .. 500]] (0.04 secs, 6184112 bytes) Prelude> let lists = map (flip replicate ()) lens (0.00 secs, 609084 bytes) Prelude> :m +Data.List Prelude Data.List> :m +Data.Ord Prelude Data.List Data.Ord> let srtl1 = sortBy (comparing length) lists (0.00 secs, 0 bytes) Prelude Data.List Data.Ord> let srtl2 = map snd . sortBy (comparing fst) $ map (\l -> (length l, l)) lists (0.02 secs, 5975640 bytes) Prelude Data.List Data.Ord> length (srtl2 !! 420) 4471 (0.19 secs, 37089168 bytes) Prelude Data.List Data.Ord> length (srtl1 !! 420) 4471 (1.09 secs, 542788 bytes) simpler is not always better. ------------------------------ Message: 5 Date: Tue, 23 Jun 2009 15:20:34 +0100 From: Ivan Uemlianin <i...@llaisdy.com> Subject: Re: [Haskell-beginners] decorate-sort-undecorate in haskell To: Daniel Fischer <daniel.is.fisc...@web.de> Cc: beginners@haskell.org Message-ID: <4a40e4b2.6040...@llaisdy.com> Content-Type: text/plain; charset=ISO-8859-15; format=flowed Daniel Fischer wrote: > Prelude> :set +s > Prelude> let lens :: [Int]; lens = [(k^2+3*k-2) `mod` 5431 | k <- [1 .. 500]] > (0.04 secs, 6184112 bytes) > Prelude> let lists = map (flip replicate ()) lens > (0.00 secs, 609084 bytes) > Prelude> :m +Data.List > Prelude Data.List> :m +Data.Ord > Prelude Data.List Data.Ord> let srtl1 = sortBy (comparing length) lists > (0.00 secs, 0 bytes) > Prelude Data.List Data.Ord> let srtl2 = map snd . sortBy (comparing fst) $ > map (\l -> > (length l, l)) lists > (0.02 secs, 5975640 bytes) > Prelude Data.List Data.Ord> length (srtl2 !! 420) > 4471 > (0.19 secs, 37089168 bytes) > Prelude Data.List Data.Ord> length (srtl1 !! 420) > 4471 > (1.09 secs, 542788 bytes) > Profiling too! Excellent. So this shows that with these long lists of lists, the dsu version was about ten times faster. I'll report back once I've written up. Thanks to everyone for your comments. Ivan -- ============================================================ Ivan A. Uemlianin Speech Technology Research and Development i...@llaisdy.com www.llaisdy.com llaisdy.wordpress.com www.linkedin.com/in/ivanuemlianin "Froh, froh! Wie seine Sonnen, seine Sonnen fliegen" (Schiller, Beethoven) ============================================================ ------------------------------ Message: 6 Date: Tue, 23 Jun 2009 14:20:11 -0500 From: aditya siram <aditya.si...@gmail.com> Subject: [Haskell-beginners] HXT: Gathering text from Nodes To: beginners <beginners@haskell.org> Message-ID: <594f78210906231220g74d3a0b1x7b6b96cd9b399...@mail.gmail.com> Content-Type: text/plain; charset="iso-8859-1" Hi all, I'm having trouble using HXT to gather up text from all nodes with a certain name, and return it in a tuple with another node. So given 3 child nodes called "kid" containing "a", "b" and "c", and 1 child node called "name" containing "A", I want to return ("A", ["a","b","c"]). My current code at http://hpaste.org/fastcgi/hpaste.fcgi/view?id=6187#a6187returns [("A","a")("B","b")("C","c")]. Any help is appreciated. -deech -------------- next part -------------- An HTML attachment was scrubbed... URL: http://www.haskell.org/pipermail/beginners/attachments/20090623/e0e25e14/attachment-0001.html ------------------------------ Message: 7 Date: Tue, 23 Jun 2009 14:51:30 -0500 From: aditya siram <aditya.si...@gmail.com> Subject: [Haskell-beginners] [SOLVED]Re: HXT: Gathering text from Nodes To: beginners <beginners@haskell.org> Message-ID: <594f78210906231251o37c7858eh477f5b60878dc...@mail.gmail.com> Content-Type: text/plain; charset="iso-8859-1" The trick was using listA to gather up the results of the computation. Working code is at http://hpaste.org/fastcgi/hpaste.fcgi/view?id=6187#a6188. -deech On Tue, Jun 23, 2009 at 2:20 PM, aditya siram <aditya.si...@gmail.com>wrote: > Hi all, > I'm having trouble using HXT to gather up text from all nodes with a > certain name, and return it in a tuple with another node. > > So given 3 child nodes called "kid" containing "a", "b" and "c", and 1 > child node called "name" containing "A", I want to return ("A", > ["a","b","c"]). My current code at > http://hpaste.org/fastcgi/hpaste.fcgi/view?id=6187#a6187 returns > [("A","a")("B","b")("C","c")]. > > Any help is appreciated. > -deech > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://www.haskell.org/pipermail/beginners/attachments/20090623/ac29bbf8/attachment-0001.html ------------------------------ Message: 8 Date: Tue, 23 Jun 2009 18:52:00 -0400 From: Thomas Friedrich <i...@suud.de> Subject: [Haskell-beginners] lhs2TeX To: beginners <beginners@haskell.org> Message-ID: <4a415c90.1070...@suud.de> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Hi everyone, A Google-search wasn't successful, that's why I am asking here. I want to use the program lhs2TeX. In the manual it says there are different styles that you can use, and some examples how they look like. But they never say how to call them. If I like to see the verbatim-style or the tt-style. What do I include in my document? Cheers, Thomas ------------------------------ Message: 9 Date: Tue, 23 Jun 2009 22:03:31 -0400 From: "Brandon S. Allbery KF8NH" <allb...@ece.cmu.edu> Subject: Re: [Haskell-beginners] decorate-sort-undecorate in haskell To: Daniel Fischer <daniel.is.fisc...@web.de> Cc: beginners@haskell.org Message-ID: <831ce386-ba3a-43ea-9f81-7d6e9d6bc...@ece.cmu.edu> Content-Type: text/plain; charset="us-ascii" On Jun 23, 2009, at 10:13 , Daniel Fischer wrote: > Typo: > map snd . sort . map (\x -> (decorate x,x)) Yeh, as usual I realized that about 5 minutes after I sent the message. :/ -- brandon s. allbery [solaris,freebsd,perl,pugs,haskell] allb...@kf8nh.com system administrator [openafs,heimdal,too many hats] allb...@ece.cmu.edu electrical and computer engineering, carnegie mellon university KF8NH -------------- next part -------------- A non-text attachment was scrubbed... Name: PGP.sig Type: application/pgp-signature Size: 195 bytes Desc: This is a digitally signed message part Url : http://www.haskell.org/pipermail/beginners/attachments/20090623/b263ff83/PGP.bin ------------------------------ _______________________________________________ Beginners mailing list Beginners@haskell.org http://www.haskell.org/mailman/listinfo/beginners End of Beginners Digest, Vol 12, Issue 11 *****************************************