Re: [Haskell-cafe] Reading pcap
Did you try using the pcap library on Hackage? http://hackage.haskell.org/package/pcap -md begin mukesh tiwari quotation: Hello all I was going through wireshark and read this pcaphttp://wiki.wireshark.org/SampleCaptures?action=AttachFiledo=viewtarget=udp_lite_full_coverage_0.pcapfile in wireshark. I wrote a simple haskell file which reads the pcap file displays its contents however it looks completely different from wireshark. When i run this program . it does not produce any thing and when i press ^C ( CTRL - C ) it produce output. output for given file ^C*0xd4 0xc3 0xb2 0xa1 0x02 0x00 0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xff 0xff 0x00 0x00 0x01 0x00 0x00 0x00 0x0b 0xd4 0x9e 0x43 0x41 0x38 0x01 0x00 0x3c 0x00 0x00 0x00 0x3c 0x00 0x00 0x00 *0x00* *0x04 0x76 0xdd 0xbb 0x3a 0x00 0x04 0x75 0xc7 0x87 0x49 0x08 0x00 0x45 0x00 0x00 0x28 0x1a 0x6a 0x40 0x00 0x40 0x88 0x6f 0x71 0x8b 0x85 0xcc 0xb0 0x8b 0x85 0xcc 0xb7 0x80 0x00 0x04 0xd2 0x00 0x00 0x38 0x45 0x68 0x65 0x6c 0x6c 0x6f 0x20 0x77 0x6f 0x72 0x6c 0x64 0x00 0x00 0x00 0x00 0x00 0x00 The values displayed in wireshark 00 04 76 dd bb 3a 00 04 75 c7 87 49 08 00 45 00 ..v..:.. u..I..E. 0010 00 28 1a 6a 40 00 40 88 6f 71 8b 85 cc b0 8b 85 .(.j@.@. oq.. 0020 cc b7 80 00 04 d2 00 00 38 45 68 65 6c 6c 6f 20 8Ehello 0030 77 6f 72 6c 64 0a 00 00 00 00 00 00 world... import Data.Char import Data.List import Text.Printf import Control.Monad fileReader :: Handle - IO () fileReader h = do t - hIsEOF h if t then return () else do tmp - hGetLine h forM_ tmp ( printf 0x%02x ) fileReader h main = do l - openBinaryFile udp_lite_full_coverage_0.pcap ReadMode fileReader l print end I am simply trying to write a haskell script which produce interpretation of pcap packet same as wireshark ( At least for UDP packet ) . Could some one please tell me a guide map to approach for this . A general guide line for this project like What to read which could be helpful for this project , which haskell library or any thing which you think is useful . Regards Mukesh Tiwari ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] possible bug in default module lookup scheme / or invalid haskell?
begin Brandon S Allbery KF8NH quotation: The fundamental problem is that ghci has no concept of projects. The correct place for this is in Cabal, which *does* have project support, but as yet it has no support for ghci. It's conceivable that the ghci user commands capability could be used to find (and optionally) parse a *.cabal file to identify a package root, at the price of an initial slowdown if you didn't have one. Not sure if anyone mentioned this possibility elsewhere in the thread, but I was thinking that having a cabal console command would be a nice way to handle this. Cabal would parse the *.cabal file and invoke ghci with the appropriate incantation. -d ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] point-free ADT pattern matching ?
begin Vo Minh Thu quotation: I guess it is short because you make use of second... so you can define second' for your B data type, or make B an instance of Arrow. I don't think that's the case. The code for f is making use of the Arrow instance for (-): second :: Arrow a = a b c - a (d, b) (d, c) (str ++):: [Char] - [Char] second (str ++) :: (d, [Char]) - (d, [Char]) All the caller can control here is what sort of d is passed through unchanged, not the fact that the resulting function expects a pair and returns a pair. -md ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] point-free ADT pattern matching ?
begin Mike Dillon quotation: begin Vo Minh Thu quotation: I guess it is short because you make use of second... so you can define second' for your B data type, or make B an instance of Arrow. I don't think that's the case. The code for f is making use of the Arrow instance for (-): second :: Arrow a = a b c - a (d, b) (d, c) (str ++):: [Char] - [Char] second (str ++) :: (d, [Char]) - (d, [Char]) All the caller can control here is what sort of d is passed through unchanged, not the fact that the resulting function expects a pair and returns a pair. BTW, I was only addressing whether making B an instance of Arrow would help somehow. Creating a second' function could indeed help, provided it had the right signature: second' :: (String - String) - B - B second' f (B i s) = B i (f s) Then you can indeed write g like so: g :: String - B - B g = second' . (++) Also, I'm pretty sure it isn't possible to write an instance of Arrow for B in principle because the type constructor has the kind * and the Arrow class has functions whose types include Arrow a = a b c, implying that instances of arrow have kind * - * - *. In fact, GHC will tell you as much even without trying to give a body to instance Arrow B: Kind mis-match Expected kind `* - * - *', but `B' has kind `*' In the instance declaration for `Arrow B' -md ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: The site has been exploited (again)
begin Gwern Branwen quotation: Ashley has made me admin; I've spent the last 1.5 hours deleting all the vandalism and indef blocking the accounts. I have Recent Changes in my RSS reader, so hopefully in the future there will be no greater than 24 hours delay before vandalism is dealt with. A MW upgrade will also help (eg. currently checkuser* seems to be unavailable). * http://www.mediawiki.org/wiki/Extension:CheckUser Excellent! Putting aside what I said earlier about protection, which doesn't really work well with a single active admin, it may still be worth putting some protection in place to avoid a non-bot account maliciously sticking something like the goatse.cx pic on the home page of Haskell.org. The options I know of for doing this are the Patrolled Edits feature and the FlaggedRevs extension. Unfortunately, I don't think either of these can be applied only to a limited set of pages because of the MediaWiki team's asinine insistence that they'll never support per-page authorization mechanism properly. -md ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: The site has been exploited (again)
begin Gour quotation: On Sun, 11 Jul 2010 14:40:03 -0300 Felipe == Felipe Lessa felipe.le...@gmail.com wrote: Felipe As far as I know, haskell.org doesn't run on top of Haskell Felipe software. That's the point. ;) haskell.org should work on Haskell software in order to prevent such things. This change had nothing to do with Haskell versus not Haskell and was not the result in an exploit in MediaWiki. The haskell.org wiki is set up to only allow logged-in users to edit pages. What appears to have happened is that someone created an account named Buycliamox and used it to make the edit in question: http://www.haskell.org/haskellwiki/?title=Special:Contributionstarget=Buycilamox Now, unless this was a bot-created account, there is nothing that a newer version of Mediawiki would have helped. I believe newer versions either have CAPTCHA/reCAPTCHA built-in or available via a plugin. That could have helped prevent automated account creation, but you still have the problems of hijacked accounts if haskell.org were really a target for such things. I'd go with the most likely explanation in this case and assume that a person created this account and decided to be cute. Being that there is only one active admin on the Haskell.org wiki (User:Ashley Y), I believe the fact that this page is editable by any user is a policy decision to allow the community to contribute. The page could be protected, but then only two administrators could edit it (assuming John Peterson decided to become active again after two years of not working on the wiki): http://www.haskell.org/haskellwiki/?title=Special%3AListusersgroup=sysop As for whether or not moving this particular wiki to a Haskell-based solution would be a good idea, I don't see it being a win. I don't know of any Haskell-based wikis that support MediaWiki syntax, so the effort would involve converting all the existing content to some other format. Being that MediaWiki's syntax is the most widespread wiki syntax at the moment, I don't see how that would do anything but make it harder for people to contribute. -md ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: The site has been exploited (again)
begin Mike Dillon quotation: Being that there is only one active admin on the Haskell.org wiki (User:Ashley Y), I believe the fact that this page is editable by any user is a policy decision to allow the community to contribute. The page could be protected, but then only two administrators could edit it (assuming John Peterson decided to become active again after two years of not working on the wiki): http://www.haskell.org/haskellwiki/?title=Special%3AListusersgroup=sysop As for whether or not moving this particular wiki to a Haskell-based solution would be a good idea, I don't see it being a win. I don't know of any Haskell-based wikis that support MediaWiki syntax, so the effort would involve converting all the existing content to some other format. Being that MediaWiki's syntax is the most widespread wiki syntax at the moment, I don't see how that would do anything but make it harder for people to contribute. One more thing. On a wiki with active administrators, this user would have been blocked. That hasn't happened. The last block was in August 2009: http://www.haskell.org/haskellwiki/?title=Special%3ALogtype=block If there is not someone regularly watching the wiki at all times, it would probably be prudent to protect some of the higher profile pages once there are more admins able to edit them. -md ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Memoization in Haskell?
begin Edward Kmett quotation: The result is considerably faster: *Main fastest_f 12380192300 67652175206 *Main fastest_f 12793129379123 120695231674999 I just thought I'd point out that running with these particular values on a machine with a 32 bit Int will cause your machine to go deep into swap... Anything constant greater that maxBound is being wrapped back to the negative side, causing havoc to ensue. I changed the open version of f to look like this to exclude negative values: f :: (Int - Int) - Int - Int f mf 0 = 0 f mf n | n 0 = error $ Invalid n value: ++ show n f mf n | otherwise = max n $ mf (div n 2) + mf (div n 3) + mf (div n 4) -md ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Monad transformers
begin Andrew Coppin quotation: Roman Cheplyaka wrote: See above: -- Dynamic components may be retrieved with 'get', static components -- with 'ask'. So you use ask to get some configuration variable (reader monad is used for configuration in xmonad) and get/put/modify to deal with dynamic state of application. You use liftIO (abbreviated to 'io') to run IO computations. In other words, somebody has written a combinatorial explosion of class instances to automate some of the lifting. Well then you need to automate writing the instances too :) The GeneralizedNewtypeDeriving extension can be used to get instances for Monad, MonadReader XConf, MonadState XState, and MonadIO automatically for a newtype like X that should suffice in most cases. -md ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] HaskellWiki and Wikipedia
Actually, it looks like MediaWiki:Newarticletext probably needs to be edited as well since that's what you see when you click through a red link. The others are for the top text after a search using Go and Search respectively. Unfortunately, this MediaWiki install doesn't appear to have interwiki links enabled; either that or the default wikipedia: interwiki doesn't work in this version or configuration. It's also horribly ancient, so it's hard to find docs on what is actually supported in the installed version since most docs out there reflect at least some of the changes that have happened in the software in the last five years. -md begin Mike Dillon quotation: This can be achieved by a wiki admin by adding the interwiki link to MediaWiki:Nogomatch. It may be nice to edit MediaWiki:Searchresultext in a parallel way. -md Jason Dagit da...@codersbase.com wrote: On Fri, Jun 18, 2010 at 8:50 AM, Roman Beslik ber...@ukr.net wrote: On 18.06.10 07:41, Jason Dagit wrote: On Thu, Jun 17, 2010 at 6:36 AM, Roman Beslik ber...@ukr.net wrote: I mean that a link [[X]] leads to HaskellWiki if X exists in HaskellWiki and to Wikipedia otherwise. I think this is probably a bad idea. Imagine trying to create a new page on the haskellwiki when wikipedia already has an article by the same name. O'kay, [[X]] leads to a page with links Create the page X and Go to Wikipedia. That seems pretty reasonable. :) Jason ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] HaskellWiki and Wikipedia
This can be achieved by a wiki admin by adding the interwiki link to MediaWiki:Nogomatch. It may be nice to edit MediaWiki:Searchresultext in a parallel way. -md Jason Dagit da...@codersbase.com wrote: On Fri, Jun 18, 2010 at 8:50 AM, Roman Beslik ber...@ukr.net wrote: On 18.06.10 07:41, Jason Dagit wrote: On Thu, Jun 17, 2010 at 6:36 AM, Roman Beslik ber...@ukr.net wrote: I mean that a link [[X]] leads to HaskellWiki if X exists in HaskellWiki and to Wikipedia otherwise. I think this is probably a bad idea. Imagine trying to create a new page on the haskellwiki when wikipedia already has an article by the same name. O'kay, [[X]] leads to a page with links Create the page X and Go to Wikipedia. That seems pretty reasonable. :) Jason ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Removing alternate items from a list
OK, here's mine: f as = [ x | (True,x) - zip (cycle [True, False]) as ] -md begin R J quotation: What's the cleanest definition for a function f :: [a] - [a] that takes a list and returns the same list, with alternate items removed? e.g., f [0, 1, 2, 3, 4, 5] = [1,3,5]? _ The New Busy is not the old busy. Search, chat and e-mail from your inbox. http://www.windowslive.com/campaign/thenewbusy?ocid=PID28326::T:WLMTAGL:ON:WL:en-US:WM_HMP:042010_3 ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] name of this monadic combinator?
begin Brent Yorgey quotation: On Sun, May 30, 2010 at 11:15:40AM -0700, Mike Dillon wrote: begin Michael Snoyman quotation: http://hackage.haskell.org/packages/archive/base/4.2.0.1/doc/html/Control-Monad.html#v%3AliftM2 file:///usr/share/doc/ghc6-doc/html/libraries/base-4.2.0.0/Control-Monad.html#v%3AliftM2Strangely, Hayoo didn't turn this one up... anyone know why? Hoogle finds it. I didn't think Hayoo was expected to do this sort of abstract type signature search: http://haskell.org/hoogle/?hoogle=Monad+m+%3D%3E+%28a+-%3E+a+-%3E+a%29+-%3E+m+a+-%3E+m+a+-%3E+m+a It comes up as the second hit on that search or the first hit on this one: http://haskell.org/hoogle/?hoogle=Monad+m+%3D%3E+%28a+-%3E+b+-%3E+c%29+-%3E+m+a+-%3E+m+b+-%3E+m+c That second search also shows zipWith in there; I never really thought about zipWith being like liftM2 for the list Monad. I don't believe that's actually true for the normal list Monad, but it should be true of an alternate list Monad along the lines of the Functor and Applicative instances for the ZipList newtype in Control.Applicative. As Max noted, ZipList is not a monad. However, you have the right idea: zipWith is exactly liftA2 (the equivalent of liftM2 for Applicatives) for ZipList. Thanks to both you and Max. After you guys responded, I went back and found an interesting haskell-cafe discussion about how ZipList cannot be made into a Monad from August 2009. I should have realized that there was a reason there is no Monad instance defined along with ZipList. -md ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] name of this monadic combinator?
begin Michael Snoyman quotation: http://hackage.haskell.org/packages/archive/base/4.2.0.1/doc/html/Control-Monad.html#v%3AliftM2 file:///usr/share/doc/ghc6-doc/html/libraries/base-4.2.0.0/Control-Monad.html#v%3AliftM2Strangely, Hayoo didn't turn this one up... anyone know why? Hoogle finds it. I didn't think Hayoo was expected to do this sort of abstract type signature search: http://haskell.org/hoogle/?hoogle=Monad+m+%3D%3E+%28a+-%3E+a+-%3E+a%29+-%3E+m+a+-%3E+m+a+-%3E+m+a It comes up as the second hit on that search or the first hit on this one: http://haskell.org/hoogle/?hoogle=Monad+m+%3D%3E+%28a+-%3E+b+-%3E+c%29+-%3E+m+a+-%3E+m+b+-%3E+m+c That second search also shows zipWith in there; I never really thought about zipWith being like liftM2 for the list Monad. I don't believe that's actually true for the normal list Monad, but it should be true of an alternate list Monad along the lines of the Functor and Applicative instances for the ZipList newtype in Control.Applicative. -md ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Why Either = Left | Right instead of something like Result = Success | Failure
begin C. McCann quotation: Personally, I advocate instead using Sinister and Dexter. Nice and catchy, don't you think? Has anyone done a translation of the Prelude into Latin? modulus PraeLudus ubi data Uter a b = Sinister a | Dexter b derivare (Aequo, Ordinaro, Lego, Monstro) Ha. -md ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Writing a web service client
I've been playing around with creating a binding for Zenfolio's JSON-RPC API for the last few days. I've been looking at Sigbjorn Finne's excellent packages on Hackage for guidance, including flickr, delicious, and hs-twitter. I've also been looking at HTTP's Network.Browser and HAXR's Network.XmlRpc since I'm having to implement the underying JSON-RPC protocol too (again based on Sigbjorn's excellent json package). -md begin Ionut G. Stan quotation: Hello, Thanks for all the links. It seems that I have a lot to study before I produce a decent library :) The Network.HTTP package looks nice too. It seems to be at the right level of abstraction compared to Network.Browser. I have to get used with searching the Hackage repository... :) On 5/25/10 3:12 PM, Christopher Done wrote: Hello Ionut, On 25 May 2010 13:26, Ionut G. Stanionut.g.s...@gmail.com wrote: The first step that I want to undertake is to write a client library for the GitHub API, so my questions would be: 1. Is there any such library? I don't know of nor have seen such a library on Hackage or Github. There was some brief talk on StackOverflow[1], but nothing about a full library. I would be interested in using such a library as I am an enthusiastic user of Github. [1]: http://stackoverflow.com/questions/1816092/using-the-github-gist-api-from-haskell 2. What other client library should I consider as an API model? Or maybe there's some paper/blog post on how do design a Haskell API? There are some good examples of Haskell code that uses REST-ish APIs.[1][2][3][4] Regarding designing a Haskell API, Real World Haskell has some chapters about that.[5] My personal advice would be at least to ensure you make it cabal-install-able, so that entails having a proper cabal file, documented with Haddock format, with QuickCheck test cases if appropriate, and provide one or two examples in the documentation, see Don's guide about writing a Haskell program[8]. [1]: http://hackage.haskell.org/package/flickr [2]: http://hackage.haskell.org/package/twitter [3]: http://hackage.haskell.org/package/feed-cli [4]: http://hackage.haskell.org/package/Bitly [5]: http://book.realworldhaskell.org/read/writing-a-library-working-with-json-data.html [6]: http://book.realworldhaskell.org/read/io-case-study-a-library-for-searching-the-filesystem.html [7]: http://book.realworldhaskell.org/read/advanced-library-design-building-a-bloom-filter.html [8]: http://www.haskell.org/haskellwiki/How_to_write_a_Haskell_program 3. What network package do people use for accessing simple, rest-like web services? Network.Curl? If not, which other? Network.Curl is OK but it relies on a C library which is another dependency and it's maybe preferable to use the HTTP library or similar library written in pure Haskell, that you can find on Hackage. -- Ionuț G. Stan | http://igstan.ro ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Would it be evil to add deriving Typeable to newtype Q?
begin Ivan Lazar Miljenovic quotation: Neil Mitchell ndmitch...@gmail.com writes: You might want to try Derive (http://community.haskell.org/~ndm/derive) if DrIFT doesn't work for you. They do roughly the same jobs, but Derive has more output formats (it can be spliced in as Template Haskell, generate #include files, output text etc) more derivations (but not quite overlapping - although both have Typeable), and is fully cabal-friendly on all platforms. I take it you haven't had the legal problems that DrIFT had when it used to be called Derive? http://www.dcs.gla.ac.uk/~nww/Derive/History.html Looks like derive.com is redirecting to a Texas Instruments site under ti.com, so they likely don't care about this particular trademark anymore since it is no longer maintained as an independent brand. Looks like they stopped selling it in June 2007, at least in the UK: http://education.ti.com/educationportal/sites/UK/productDetail/uk_derive6.html The other link I found redirected to a page that didn't mention Derive™ at all. -md ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] How to make way into a hadoop infrastructure
I think you'll want to look at the Hadoop Streaming or Hadoop Pipes API. Further down the line, I think somebody will want to implement a Haskell library to deal with the Avro serialization protocol when it becomes possible to write non-JVM mappers and reducers directly. This JIRA issue covers the RPC part of the Avro-Hadoop integration work: https://issues.apache.org/jira/browse/HADOOP-6659 Looks like folks have already implemented support for Thrift and Protocol Buffers, so implementing a library for Avro would likely be pretty similar. -md begin C K Kashyap quotation: Dear Haskellers, A big part of my new job requires tuning app's on Hadoop. I was wondering if there is a way to push some Haskell code in the mix. I did some googling on Hadoop/Haskell and came across Holumbus - but looks like that is parallel to Hadoop. I was thinking in the lines of doing a Haskell implementation that could run in a Hadoop cluster - has anyone tried anything like that? -- Regards, Kashyap ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Pointfree composition for higher arity
That signature is the `oo` specs combinator in Data.Aviary: fun = runFun `oo` someFun someDefault -md begin Sean Leather quotation: I find myself often writing this pattern: someFun x y z = ... fun y z = runFun $ someFun someDefault y z or, alternatively: fun y = runFun . someFun someDefault y The second option approaches the ideal pointfreeness (or pointlessness if you prefer), but I'd like to go farther: (...) :: (c - d) - (a - b - c) - a - b - d (...) f g x y = f (g x y) infixr 9 ... fun = runFun ... someFun someDefault There, that's better. More points for fewer points (which means I should really change the name from fun to pun). Does anybody else care about this? What are some alternative solutions? I'd love to have something like this available in the Prelude or a library. (I have no strong feelings about the particular operator.) Regards, Sean ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Pointfree composition for higher arity
begin Stephen Tetley quotation: On 17 February 2010 15:41, Mike Dillon m...@embody.org wrote: That signature is the `oo` specs combinator in Data.Aviary: Hi Mike Thanks - indeed, I was just looking up the thread that covered them a month or two ago: http://www.haskell.org/pipermail/haskell-cafe/2009-December/071392.html I wouldn't recommend writing code that depends on Data.Aviary, but some of the combinators are often worth copy/pasting out of it. Are you kidding me? I love writing code like this: o = bunting bunting cardinal thrush blackbird :) -md ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe