Re: [Haskell-cafe] Store type-class polymorphic values generically
Hi Chris, Maybe this package (from Edward Kmett, surprisingly) could help: http://hackage.haskell.org/package/constraints-0.3.3/docs/Data-Constraint.html? Considering it kind of reifies the type class constraints, I'm wondering whether you could use this to carry the constraints along the value you're storing? I haven't given it a lot of thoughts for now, but maybe you can get something decent working with this? On Fri, Oct 4, 2013 at 12:41 PM, Heinrich Apfelmus apfel...@quantentunnel.de wrote: Christopher Done wrote: On 4 October 2013 10:56, Heinrich Apfelmus apfel...@quantentunnel.de wrote: In particular, the Locker stores arbitrary values like Dynamic , except that values are extracted and removed with the help of a Key . This gets rid of the Typeable constraint. lock :: Key a - a - Locker I can't pass anything with class constraints to that. I don't know what something with a class constraint means. But I guess you want to pass a value with a *polymorphic* type? This is no problem, but requires impredicative polymorphism: a = (forall b. Show b = b - IO ()) lock :: Key (forall b. Show b = b - IO ()) - (forall b. Show b = b - IO ()) - Locker Unfortunately, GHC's support for that is a little shaky, but a solution that always works is to put it in a new data type. data Dummy = Dummy { unDummy :: forall b. Show b = b - IO () } lock :: Key Dummy - Dummy - Locker It seems to me that your problem decomposes into two problems: 1. A heterogenous store for values of different types. 2. Values with polymorphic instead of monomorphic types. Solution for problem 1 are usually restricted to monomorphic types, but you can work around it. Best regards, Heinrich Apfelmus -- http://apfelmus.nfshost.com __**_ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/**mailman/listinfo/haskell-cafehttp://www.haskell.org/mailman/listinfo/haskell-cafe -- Alp Mestanogullari ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Poll plea: State of GUI graphics libraries in Haskell
). I do not know the details of this, but it sounds like a pretty serious problem, and it used to work. Is whatever-it-is confirmed fixed in 7.8? Do we have a test that’ll trip if it breaks again? (I’m guessing that the latter might be hard.) Thanks Simon -Original Message- From: Haskell-Cafe [mailto:haskell-cafe-boun...@haskell.org] On Behalf Of Paul Liu Sent: 30 September 2013 07:18 To: Conal Elliott Cc: Haskell Cafe Subject: Re: [Haskell-cafe] Poll plea: State of GUI graphics libraries in Haskell Hi Conal, I wasn't able to make it to last Saturday's FARM track, but I think there was a good chance that Paul would have demonstrated his Euterpea music library, which includes a GUI interface (called MUI) written on top of GLFW. I wrote its initial implementation (around 2009?) with a monadic interface that let you wire together UI components with signals (I believe Dan later wrote an arrow interface, but I could be wrong). It was actually inspired by the ideas behind your Phooey UI library. It should be very easy to extract this part out as a standalone package if there is enough interest. The only issue with it (and all other UI libraries) is that it doesn't play nicely in GHCi. It used to work pretty well with GHC 7.2 and 7.4 on almost all platforms (Mac needs an extra hack), but GHC 7.6 broke Mac (and perhaps Windows too). GHC 7.8 supposedly should fix this problem. BTW, as also the author of the GLFW library on HackageDB, I've done barely minimal to keep this Haskell binding afloat. I'm actually leaning towards GLFW-b library, which is better maintained, and provides similar binding for GLFW C library but with a saner interface (no dependency on the OpenGL library, for example). If you don't need the two extra things that GLFW does (choice of either dynamic or static linking to GLFW C, and an embedded bitmap font), I suggest you try out GLFW-b if you are only looking for a think graphics layer with input+window+OpenGL. The only thing keeping GLFW-b from becoming a good foundation for a pure Haskell UI lib is IMHO the lack of a light-weight, cross-platform, and full-featured font rendering solution. I believe many other libraries (including Diagram) are having the same problem. On Thu, Sep 26, 2013 at 8:32 PM, Conal Elliott co...@conal.net wrote: I'm polling to see whether there are will and expertise to reboot graphics and GUIs work in Haskell. I miss working on functional graphics and GUIs in Haskell, as I've been blocked for several years (eight?) due to the absence of low-level foundation libraries having the following properties: * cross-platform, * easily buildable, * GHCi-friendly, and * OpenGL-compatible. The last several times I tried Gtk2hs, I was unable to compile it on my Mac. Years ago when I was able to compile, the GUIs looked and interacted like a Linux app, which made them awkward and upleasant to use. wxHaskell (whose API and visual appearance I prefered) has for years been incompatible with GHCi, in that the second time I open a top-level window, the host process (GHCi) dies abruptly. Since my GUI graphics programs are often one-liners, and I tend to experiment a lot, using a full compilation greatly thwarts my flow. For many years, I've thought that the situation would eventually improve, since I'm far from the only person who wants GUIs or graphics from Haskell. About three years ago, I built a modern replacement of my old Pan and V ___ ghc-devs mailing list ghc-d...@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs -- Regards, Paul Liu -- Regards, Paul Liu ___ ghc-devs mailing list ghc-d...@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs -- Regards, Paul Liu ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe -- Alp Mestanogullari ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Poll plea: State of GUI graphics libraries in Haskell
Yes, sorry, why I brought up haskell-game wasn't clear. I meant to say there are already quite a few people willing to improve the situation of graphics programming in Haskell (may it be GUI, games, visualization, ...). And I think we should definitely talk to each other and try to come up with something good and that we would be proud of using, and that fits with the kind of composability and simplicity we can get with libraries from other domains. I just consider haskell-game a first step in that direction. On Fri, Oct 4, 2013 at 5:23 PM, Jake McArthur jake.mcart...@gmail.comwrote: I don't think I would quite say haskell-game is quite relevant. For that matter, the implementation on GitHub is not very good. It's too complicated to scale and too specialized. I've been starting a fresh implementation, since I learned a lot about what I really want to do writing that, but it is not public yet. That said, I think our efforts on haskell-game are definitely complementary with efforts to improve GUI programming with Haskell, and we should collaborate where it makes sense. On Fri, Oct 4, 2013 at 11:19 AM, Alp Mestanogullari alpmes...@gmail.comwrote: Hi guys, I have been willing to have a nice GUI DSEL with good aesthetics for a while. I think the hardest part wouldn't be the API, but really what library we use underneath so that it's cross-platform and easy to install for everyone. But I would love for something like that to happen and am very interested in this. Note that people from #haskell-game are experimenting a bit (I think it's mostly Jake McArthur's work for now), see the brainstorming (ideas) and graphics (partial impl) repositories at [1]. [1]: https://github.com/haskell-game On Thu, Oct 3, 2013 at 12:28 AM, Conal Elliott co...@conal.net wrote: Interesting. How are the aesthetics? Can you point me to screen shots? It'd be a lot of work, but one cool project would be to create *beautiful* GUI elements using OpenGL programmable shaders. Given the speed of GPUs, we could afford to put a lot into visual details. A complementary project is designing a semantically precise and elegant (denotative/genuinely functional to use Peter Landin's terms) GUI DSEL that would be simpler and more powerful than the conventional OO-inspired libraries we have so much trouble getting to work in Haskell. I've thought about this sort of thing on and off for a very long time and would be happy to be involved if others are interested also. Together, these two efforts would yield an approach to GUIs that is beautiful inside and out. -- Conal On Wed, Oct 2, 2013 at 1:21 PM, Paul Liu nine...@gmail.com wrote: No. GLFW does not give you any UI elements, just basic windowing and input handling. Euterpea has a UI layer on top of GLFW that provides text boxes and sliders, etc, entirely written in Haskell. On Wed, Oct 2, 2013 at 8:40 AM, Conal Elliott co...@conal.net wrote: Hi Paul. Is there a way to use GLFW with GUI elements other than OpenGL display windows, e.g., text boxes and sliders? -- Conal On Tue, Oct 1, 2013 at 11:23 PM, Paul Liu nine...@gmail.com wrote: Thanks. I've just built GHC HEAD on Mac OS X Lion, and tested by installing libraries with --enable-shared and loading a GLFW program into GHCi. Using ghci -fno-ghci-sandbox, everything works great including closing and restarting GL window multiple times. Can't wait for the official release of GHC 7.8! On Tue, Oct 1, 2013 at 12:09 PM, Carter Schonwald carter.schonw...@gmail.com wrote: thats the linker bug. the glfw stuff has been tested on ghc HEAD / 7.7 by folks on #haskell-game in recent memory. GHCI + foreign libs should work fine now (modulo thread local storage related thing). the historical element doesn't matter any more. To the best of my knowledge, all such issues should be gone. Anyone who cares about making sure GHCI+ gui libs play nice, PLEASE test with HEAD. the better this issue is properly tested (which i believe it has been), the more we can actually prevent it from happening. This requires people to test with HEAD GHCi now, rather than doing archaeology. anyone who cares, please play with GHCI in HEAD. If your lib doesn't work with ghci, please report a bug. It would be a new bug because it wont' be the previous reasons it hasnt' worked. tl;dr to the best of my knowledge this issue is resolved in HEAD. Test HEAD. Help us make sure it stays resolved by testing HEAD. thanks -Carter On Tue, Oct 1, 2013 at 1:20 PM, Paul Liu nine...@gmail.com wrote: I reported a problem with statically linked GLFW library on Mac OS X Lion in this thread: http://www.haskell.org/pipermail/haskell-cafe/2012-January/097355.html I do not know why this is broken on Mac OS X Lion, but not on Linux or Windows. There was an EnableGUI hack
Re: [Haskell-cafe] Poll plea: State of GUI graphics libraries in Haskell
If these said libraries let us write a good API on top, then perfect! The problem is to actually pick the ones fulfilling our needs I think, all the major candidatures have pretty serious drawbacks, AFAIK. On Sat, Oct 5, 2013 at 12:36 AM, Robin KAY komad...@gekkou.co.uk wrote: Dear Alp, Alp Mestanogullari wrote: [snip] I have been willing to have a nice GUI DSEL with good aesthetics for a while. I think the hardest part wouldn't be the API, but really what library we use underneath so that it's cross-platform and easy to install for everyone. But I would love for something like that to happen and am very interested in this. Herein lies, for my purposes, the downfall of attempts to build GUI tool-kits on top of a blank canvas. From the perspective of binding to the platform, getting the basic functionality of a cross-platform GLUT or SDL equivalent isn't terribly difficult. You can layer your own widget system on top but even if you don't care about native look and feel (and I don't particularly), there are still three big functionality hurdles in my mind to building serious applications:- i) Proper text rendering is more difficult than placing one glyph after another on a line. You need to bind to each platform's text rendering engine: Pango/others, Uniscribe, and Core Text. ii) Proper text input is more difficult than listening for key press and release events. You need to bind to the each platform's input method system: XIM/IBus/others, IMM, and NSTextInputClient. iii) Proper accessibility is just difficult. There are plenty of applications where that doesn't matter and there are lots of attractive things about a pure Haskell implementation with beautiful high-level API. However, from my perspective, there are also attractions to outsourcing as much of that work as possible to existing libraries on the other side of the FFI even though that seems to bring us down to lower-level. Regards, -- Robin KAY __**_ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/**mailman/listinfo/haskell-cafehttp://www.haskell.org/mailman/listinfo/haskell-cafe -- Alp Mestanogullari ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Automatically test different versions of single dependency
You can just write a bash script that will do: cabal install --constraint='bar == v' for all the values of 'v' (0.1, 0.2, 1.2.5.1, ...) you are interested in. You can be aware of all the existing versions just using the directory listing in http://hackage.haskell.org/packages/archive/containers/ (for the 'containers' package in this case) or by using cabal-install cleverly maybe? I just saw 'cabal info containers' gives a list of available versions, up to a point... after which it says (and 4 others). So maybe go see how 'cabal info' does this? But all in all, this should give you enough to work out a nice solution. On Thu, Jul 4, 2013 at 12:56 PM, Daniel Díaz Casanueva dhelta.d...@gmail.com wrote: Hello everyone. I would like to check what dependencies is one of my packages compatible with. For example, say I have a package called foo that depends on package bar. Most likely, foo does not build with each version of bar. What I want to do is try to build foo with each single version of bar (not manually). What is the best approach to this? ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe -- Alp Mestanogullari ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Automatically test different versions of single dependency
Yeah, I used the 00-index.tar.gz too, the directory listing did it for me (in scoutess). I was saying 'cabal' but cabal-dev works just fine for this too, it responds to the necessary commands too. Good luck :-) On Thu, Jul 4, 2013 at 3:01 PM, Daniel Díaz Casanueva dhelta.d...@gmail.com wrote: Hello, Alp. Thank you for your response. Currently, I am extracting the information from the 00-index.tar.gz, and planning to use cabal-dev for the builds. Using the cabal tool directly looks like a very bad idea to me. I am still interested in knowing if there is some related job already done, or any other clever ideas that I didn't manage to think of. However, this looks like the best approach right now. Thank you, Daniel Díaz. On Thu, Jul 4, 2013 at 2:36 PM, Alp Mestanogullari alpmes...@gmail.comwrote: You can just write a bash script that will do: cabal install --constraint='bar == v' for all the values of 'v' (0.1, 0.2, 1.2.5.1, ...) you are interested in. You can be aware of all the existing versions just using the directory listing in http://hackage.haskell.org/packages/archive/containers/ (for the 'containers' package in this case) or by using cabal-install cleverly maybe? I just saw 'cabal info containers' gives a list of available versions, up to a point... after which it says (and 4 others). So maybe go see how 'cabal info' does this? But all in all, this should give you enough to work out a nice solution. On Thu, Jul 4, 2013 at 12:56 PM, Daniel Díaz Casanueva dhelta.d...@gmail.com wrote: Hello everyone. I would like to check what dependencies is one of my packages compatible with. For example, say I have a package called foo that depends on package bar. Most likely, foo does not build with each version of bar. What I want to do is try to build foo with each single version of bar (not manually). What is the best approach to this? ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe -- Alp Mestanogullari -- Alp Mestanogullari ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Open Source project suitable for 2-3 persons this fall?
I have an idea or two for websites that would be really useful to the community I think, and not enough time to do it myself for the moment. One is not finished but already in good shape, the other I barely started. If websites would be fine (this would be haskell + pgsql + html/css/js/whatever), then shoot me an email to discuss this :-) On Thu, Jul 4, 2013 at 5:26 PM, Anders Bech Mellson and...@bechmellson.comwrote: Is there any project that needs working this fall which could be used as a university project? I am in the university (M.Sc. in software development), so I am mainly looking for project ideas (preferably concrete ones). We are 2-3 students that have ~10 hours pr week for 3 months to work on a project. Is there a listing somewhere with project ideas for contributing to the Haskell community? Thanks in advance, Anders ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe -- Alp Mestanogullari ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Automating Hackage accounts
Most of the issues raised here indeed are addressed in Hackage2 already, or are planned to be. Too few people working on it though. See the Hackage mess section in [1] for more info on Hackage2 and [2] to see the running instance. [1] http://alpmestan.com/2012/11/02/cabal-hackage-what-you-can-do-about-it/ [2] http://new-hackage.haskell.org On Thu, Jun 13, 2013 at 5:13 PM, Jeremy Shaw jer...@n-heptane.com wrote: No idea, But if not, it should be trivial to add support. The two main issues would be getting an SSL certificate (if one does not already exist) and then making sure that the links do not hardcode the schema. So // hackage.haskell.org/foo instead of http://hackage.haskell.org/. Then the site can be served using simpleHTTPS instead of simpleHTTP. - jeremy On Thu, Jun 13, 2013 at 9:48 AM, Niklas Hambüchen m...@nh2.me wrote: As for the user account creation and uploading packages you don't own, Hackage 2 (any day now) has fixes for both. Does Hackage 2 have SSL at least for the web interface? ___ 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 -- Alp Mestanogullari ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] What is the process for GSOC?
No, if the process is the same this year as the previous one, all potential mentors and haskell.org gsoc admins (I think) get to vote on each submission, giving it a score, and then the best N proposals get chosen. On Wed, May 1, 2013 at 10:34 AM, Dominic Steinitz domi...@steinitz.orgwrote: How is it decided which Haskell projects get chosen? Do we discuss them here and take a collective view? Thanks, Dominic. PS I should point out I have an interest in the proposal to port charts to use diagrams ( http://www.google-melange.com/gsoc/proposal/review/google/gsoc2013/jbracker/1) i.e. I'd really like this as a user. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe -- Alp Mestanogullari ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Two GHC-related GSoC Proposals
Hi, I think the first proposal may be a bit too much for a GSoC, depending on how much you actually are familiar with the code base. If you can write down everything that needs to be done, in a detailed way (I mean a *lot* of details), for each of these steps, and if you sincerely consider all of these stuffs can be done in 3 months, yeah, that would be great! For example, making the compilation pipeline thread safe may end up being trickier than expected if it's not studied properly before making a proposal. The latter is a good idea, and a good proposal would ideally include some estimation on how it can impact some benchmarks/projects. It looks much less like a trap and if you propose enough improvements that it can fill a whole GSoC, considering how big the impact can be, yes, this would of course be a good idea. On Sun, Apr 21, 2013 at 6:20 PM, Patrick Palka patr...@parcs.ath.cx wrote: Hi, I'm interested in participating in the GSoC by improving GHC with one of these two features: 1) Implement native support for compiling modules in parallel (see #910http://hackage.haskell.org/trac/ghc/ticket/910). This will involve making the compilation pipeline thread-safe, implementing the logic for building modules in parallel (with an emphasis on keeping compiler output deterministic), and lots of testing and benchmarking. Being able to seamlessly build modules in parallel will shorten the time it takes to recompile a project and will therefore improve the life of every GHC user. 2) Improve existing constant folding, strength reduction and peephole optimizations on arithmetic and logical expressions, and optionally implement a core-to-core pass for optimizing nested comparisons (relevant tickets include #2132 http://hackage.haskell.org/trac/ghc/ticket/2132, #5615 http://hackage.haskell.org/trac/ghc/ticket/5615,#4101http://hackage.haskell.org/trac/ghc/ticket/4101). GHC currently performs some of these simplifications (via its BuiltinRule framework), but there is a lot of room for improvement. For instance, the core for this snippet is essentially identical to the Haskell source: foo :: Int - Int - Int - Int foo a b c = 10*((b+7+a+12+b+9)+4) + 5*(a+7+b+12+a+9) + 7 + b + c Yet the RHS is actually equivalent to 20*a + 26*b + c + 467 And: bar :: Int - Int - Int bar a b = a + b - a - b -- the RHS is should be optimized away to 0 Other optimizations include: multiplication and division by powers of two should be converted to shifts; multiple plusAddr calls with constant operands should be coalesced into a single plusAddr call; floating point functions should be constant folded, etc.. GHC should be able to perform all these algebraic simplifications. Of course, emphasis should be placed on the correctness of such transformations. A flag for performing unsafe optimizations like assuming floating point arithmetic is associative and distributive should be added. This proposal will benefit anybody writing or using numerically intensive code. I'm wondering what the community thinks of these projects. Which project is a better fit for GSoC, or are both a good fit? Is a mentor willing to supervise one of these projects? Thanks for your time. Patrick (A little about myself: I'm a Mathematics student in the US, and I've been programming in Haskell for about 3.5 years. Having a keen interest in Haskell and compilers, I began studying the GHC source about 1 year ago and I've since gotten a good understanding of its internals, contributing a few patches along the way.) ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe -- Alp Mestanogullari ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Enumerating functions at runtime
More details about interface files can be found at http://hackage.haskell.org/trac/ghc/wiki/Commentary/Compiler/IfaceFiles -- in particular the 'ghc --show-iface' part should be of great interest to you. On Sun, Mar 24, 2013 at 12:22 PM, Don Stewart don...@gmail.com wrote: All the info is in the .hi files On Sunday, 24 March 2013, Brent Yorgey wrote: On Sat, Mar 23, 2013 at 08:26:52PM -0700, Luke Evans wrote: I'm curious about using Haskell for metaprogramming. It looks like I can dynamically compile, load and run some Haskell with the plugins package. Actually I've briefly tried this and it seems to work for some simple cases at least. Now I would like to be able to enumerate precompiled public functions in modules that I might use as building blocks in such dynamic compilation. So far I'm not seeing anything that does this directly. Can anyone provide some pointers? If it's just not possible to introspect on compiled modules, then I suppose I could use external metadata of my own, or even perhaps haddock info if it exists, to attempt to generate this info. Clearly though, that's nowhere near as good as extracting the info from something the compiler built directly. I have no idea how it works, but I'm pretty sure yi does this --- e.g. if you hit M-x (when in emacs emulation mode) and then tab-complete, you see a list of all the available functions. Maybe you want to take a look at the yi source code and see how they do it. -Brent ___ 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 -- Alp Mestanogullari ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Open-source projects for beginning Haskell students?
Hi, My suggestion may sound a bit odd, but if they're looking for a challenging but still simple enough project, I'd love for people to test out the new version of hnn (not yet released, but on github [1]) and make something fun with it. I'd love to mentor this and add things to the library altogether as they progress and give some feedback. The biggest issue with that proposal is that they either have to know a bit about neural networks before or must be able to learn very quickly. This can however be compensated by that warm feeling you have when your neural net finally does what you want it to. On Mon, Mar 11, 2013 at 4:48 PM, Brent Yorgey byor...@seas.upenn.eduwrote: Hi everyone, I am currently teaching a half-credit introductory Haskell class for undergraduates. This is the third time I've taught it. Both of the previous times, for their final project I gave them the option of contributing to an open-source project; a couple groups/individuals took me up on it and I think it ended up being a modest success. So I'd like to do it again this time around, and am looking for particular projects I can suggest to them. Do you have an open-source project with a few well-specified tasks that a relative beginner (see below) could reasonably make a contribution towards in the space of about four weeks? I'm aware that most tasks don't fit that profile, but even complex projects usually have a few simple-ish tasks that haven't yet been done just because no one has gotten around to it yet. If you have any such projects, I'd love to hear about it! Just send me a paragraph or so describing your project and explaining what task(s) you could use help with --- something that I could put on the course website for students to look at. Here are a few more details: * The students will be working on the projects from approximately the end of this month through the end of April. During the next two weeks they would be contacting you to discuss the possibility of working on your project. * By relative beginner I mean someone familiar with the material listed here: http://www.cis.upenn.edu/~cis194/lectures.html and just trying to come to terms with Applicative and Monad. They definitely do not know much if anything about optimization/profiling, GADTs, the mtl, or Haskell-programming-in-the-large. (Although part of the point of the project is to teach them a bit about programming-in-the-(medium/large)). * What I would hope from you is a willingness to exchange email and/or chat with the student(s) over the course of the project, to give them a bit of guidance/mentoring. I am certainly willing to help on that front, but of course I probably don't know much about your particular project. Thanks! -Brent ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe -- Alp Mestanogullari ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Open-source projects for beginning Haskell students?
[1]: http://github.com/alpmestan/hnn On Wed, Mar 13, 2013 at 1:03 AM, Alp Mestanogullari alpmes...@gmail.comwrote: Hi, My suggestion may sound a bit odd, but if they're looking for a challenging but still simple enough project, I'd love for people to test out the new version of hnn (not yet released, but on github [1]) and make something fun with it. I'd love to mentor this and add things to the library altogether as they progress and give some feedback. The biggest issue with that proposal is that they either have to know a bit about neural networks before or must be able to learn very quickly. This can however be compensated by that warm feeling you have when your neural net finally does what you want it to. On Mon, Mar 11, 2013 at 4:48 PM, Brent Yorgey byor...@seas.upenn.eduwrote: Hi everyone, I am currently teaching a half-credit introductory Haskell class for undergraduates. This is the third time I've taught it. Both of the previous times, for their final project I gave them the option of contributing to an open-source project; a couple groups/individuals took me up on it and I think it ended up being a modest success. So I'd like to do it again this time around, and am looking for particular projects I can suggest to them. Do you have an open-source project with a few well-specified tasks that a relative beginner (see below) could reasonably make a contribution towards in the space of about four weeks? I'm aware that most tasks don't fit that profile, but even complex projects usually have a few simple-ish tasks that haven't yet been done just because no one has gotten around to it yet. If you have any such projects, I'd love to hear about it! Just send me a paragraph or so describing your project and explaining what task(s) you could use help with --- something that I could put on the course website for students to look at. Here are a few more details: * The students will be working on the projects from approximately the end of this month through the end of April. During the next two weeks they would be contacting you to discuss the possibility of working on your project. * By relative beginner I mean someone familiar with the material listed here: http://www.cis.upenn.edu/~cis194/lectures.html and just trying to come to terms with Applicative and Monad. They definitely do not know much if anything about optimization/profiling, GADTs, the mtl, or Haskell-programming-in-the-large. (Although part of the point of the project is to teach them a bit about programming-in-the-(medium/large)). * What I would hope from you is a willingness to exchange email and/or chat with the student(s) over the course of the project, to give them a bit of guidance/mentoring. I am certainly willing to help on that front, but of course I probably don't know much about your particular project. Thanks! -Brent ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe -- Alp Mestanogullari -- Alp Mestanogullari ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Question about updating GHC on MacOS
I don't think so. However, you can install the OS X binaries for ghc 7.6.2 and make that sit just next to your Haskell Platform install. You can even use your existing cabal-install to install packages for the freshly installed ghc by doing 'cabal install foo --with-ghc=/path/to/ghc'. Just watch which ghc does become the default (it's a matter of replacing a symlink) and that it satisfies you. On Thu, Mar 7, 2013 at 10:50 PM, Graham Klyne g...@ninebynine.org wrote: Hi, I have Haskell Platform with GHC[i] 7.4.2 installed on a MacOS system. There's a problem with the handling of certain Markdown constructs in literate Haskell (lines starting with '#') that I understand is fixed in 7.6.2. Therefore, I'd like to be able to update my GHC installation to 7.6.2. But I haven't yet been able to find any instructions about how to upgrade an existing GHC installation. Am I missing something? #g -- __**_ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/**mailman/listinfo/haskell-cafehttp://www.haskell.org/mailman/listinfo/haskell-cafe -- Alp Mestanogullari ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] ANN: pipes-network-0.1.0 - Stream your network sockets using the pipes and pipes-safe libraries
I had the very same package idea a few weeks back but I have been busy with other things, glad that you wrote it! I'll give your package a shot and give you some feedback by then :-) On Fri, Mar 1, 2013 at 5:07 AM, Renzo Carbonara gnuk0...@gmail.com wrote: I'm happy to announce the release of pipes-network 0.1.0. The pipes-network package allows using network sockets together with the pipes and pipes-safe libraries, for streaming purposes. Currently, just TCP sockets are supported. http://hackage.haskell.org/package/pipes-network-0.1.0 The package is split into two halves: one “Safe” half that can be used if proxies need to safely and timely acquire and release new sockets within a pipeline, using the facilities provided by the pipes-safe package; and another simpler and faster half that doesn't depend on pipes-safe, but it also doesn't provide any means for safely acquiring and releasing new sockets within a pipeline itself. There's plenty of documentation and some examples in the Haddocks. Many thanks to Gabriel Gonzalez, author of pipes, for discussing the design of the library with me; and to Paolo Capriotti, author of a previous pipes-network version, for his original work and for handing me the maintenance of this package. ¡Enjoy your TCP streams! Regards, Renzo Carbonara. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe -- Alp Mestanogullari ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] optimization of recursive functions
If a difference appears, I believe http://blog.johantibell.com/2010/09/static-argument-transformation.htmlwould be involved. Also, the second map function could be inlined by GHC, avoiding calling f through a pointer because at the call site, we know what 'f' is (this is also mentionned in the blog post by Johan). On Wed, Feb 13, 2013 at 9:55 AM, Andrew Polonsky andrew.polon...@gmail.comwrote: Hello, Is there any difference in efficiency between these two functions, when compiled with all optimizations? map f [] = [] map f (a:as) = f a : map f as and map f x = map' x where map' [] = [] map' (a:as) = f a : map' as Thanks, Andrew ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe -- Alp Mestanogullari ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Chordify, a new web startup using Haskell
That's awesome, works like a charm on the samples I've tried it on! Cheers to the Chordify team, I will use it and give any useful feedback if I have any. On Fri, Jan 18, 2013 at 12:07 AM, José Pedro Magalhães j...@cs.uu.nl wrote: Hi all, I'd like to introduce Chordify http://chordify.net/ [1], an online music player that extracts chords from musical sources like Soundcloud, Youtube or your own files, and shows you which chord to play when. Here's an example song: http://chordify.net/chords/passenger-let-her-go-official-video-passengermusic The aim of Chordify is to make state-of-the-art music technology accessible to a broader audience. Behind the scenes, Chordify uses the HarmTrace Haskell package to compute chords from audio. I've been working on this project with a couple of colleagues for a while now, and recently we have made the website public, free to use for everyone. We do not use Haskell for any of the frontend/user interface, but the backend is entirely written in Haskell (and it uses pretty advanced features, such as GADTs and type families [3]). We're particularly interested in user feedback at this stage, so if you're interested in music and could use an automatic chord transcription service, please try Chordify! Cheers, Pedro [1] http://chordify.net/ [2] http://hackage.haskell.org/package/HarmTrace [3] José Pedro Magalhães and W. Bas de Haas. Functional Modelling of Musical Harmony: an Experience Report. In Proceedings of the 16th ACM SIGPLAN International Conference on Functional Programming (ICFP'11), pp. 156–162, ACM, 2011. http://dreixel.net/research/pdf/fmmh.pdf ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe -- Alp Mestanogullari ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Feedback on FFI bindings for C++ library
The simplest way generally is to make make a C binding and then bind Haskell from there. You may indeed want to take a look at wxWidgets' binding or SFML's (https://github.com/jeannekamikaze/SFML). On Fri, Jan 18, 2013 at 1:05 AM, kudah kudahkuka...@gmail.com wrote: I'd suggest to first look at how other C++-bindings for haskell are implemented. e.g. wxHaskell is the most mature Haskell C++ binding out there. hogre tries to generate bindings from headers. And a number of (rather minimal) bindings to some libs were made as part of Nikki and the Robots. On Thu, 17 Jan 2013 18:48:02 +0100 Nathan Hüsken nathan.hues...@posteo.de wrote: Hey, I would like to write FII bindings in haskell for cocos2d-x (http://www.cocos2d-x.org/), which is a C++ library. Since I have little experience with this, I would like some feedback before I discover that concept is bad half way. In cocos2d there is a base class with much functionality: CCNode Many classes derive from it (i.E. CCLayer) and use the virtual functions of CCNode (i.E. setPosition). How do I map this to haskell? The general Idea: I have a typeclass, in which everything that is derived from CCNode is an instance: class NodeDerived a where toNode :: a - Node setPosition :: a - (Double,Double) - IO () setPosition a pos = setNodePosition (toNode a) pos instane NodeDerived Layer where toNode = layerToNode and layerToNode :: Layer - Node would be implemented in C++ as: CCNode* layerToNode(CCLayer* l) { return dynamic_castCCNode*(l); } This way I would have only to implement toNode for every class derived from CCNode and get all the functions CCNode defines. What do you think if this Idea? How would you do it? Thanks! Nathan ___ 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 -- Alp Mestanogullari ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Haskell job opening at Functor AB
Hello -cafe, There's a very cool Haskell job opening at Functor AB, involving some cool type theory, for use in nuclear fusion research. You can read about it here: http://alpmestan.com/posts/2012-10-23-haskell-job-opening-at-functor.html -- Alp Mestanogullari ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Darcs on Windows 7
I have tested it a long time ago. It worked fine. However, when I need to use darcs on Windows 7 now, I just use the CLI, I don't really need more. On Mon, Sep 24, 2012 at 3:07 PM, Magnus Therning mag...@therning.orgwrote: On Sun, Sep 23, 2012 at 12:36 AM, Erik de Castro Lopo mle...@mega-nerd.com wrote: Vasili I. Galchin wrote: Hello Haskellers, I installed darcs on a Windows 7 machine. A darcs folder was created under Program Files(x86) folder. However, when I pull up Program... on the left side, darcs not there for me to run it. Why? Is darcs run only from the CLI? Yes, darcs is a command line program. There is a GUI for windows, but I have no idea whether it's good or not: http://tortoisedarcs.sourceforge.net/ /M -- Magnus Therning OpenPGP: 0xAB4DFBA4 email: mag...@therning.org jabber: mag...@therning.org twitter: magthe http://therning.org/magnus ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe -- Alp Mestanogullari ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Key-Parametrized Lookup Table
Would ixset or HiggsSet be suitable? http://hackage.haskell.org/package/ixsethttp://hackage.haskell.org/package/ixset-1.0.5 http://hackage.haskell.org/package/HiggsSet On Tue, Jul 31, 2012 at 12:56 PM, Alexander Foremny alexanderfore...@gmail.com wrote: At first glance I noticed some problems with the vault library for my particular approach. Despite from being unique, Key values don't appear to carry any information like the Label I need. However, it might be possible to work around that. The more grave problem seems to be that a Key cannot be (de-)serialized. This might be impossible due to the type parameter a in Key a. However, it is no problem to fix the types of values to some finite collection. Because of this some solution built around Dynamic seems to be more and more appropriate. But I'll try to investigate vault further. Regards, Alexander Foremny 2012/7/31 Alexander Foremny alexanderfore...@gmail.com: Dear Michael, thank you very much for your quick and interesting response. This looks very much like what I want! Regards, Alexander Foremny 2012/7/31 Michael Snoyman mich...@snoyman.com: On Tue, Jul 31, 2012 at 1:13 PM, Alexander Foremny alexanderfore...@gmail.com wrote: Hello list, I am currently thinking that a problem of mine would best be solved if there was a Map-like data structure in which the value returned is parametrized over the lookup type. I wonder is this makes sense and if such a data structure exists or if it could be created while still being well typed. I essentially want to statically define a scope of Key values and dynamically define a list of keys. -- Scope of possible keys. type Label = String data Key a where KeyStr :: Label - Key String KeyInt :: Label - Key Int KeyChoice :: Label - [a] - Key a -- Some key values, to be extended at runtime. strKey Some String strKey' Another String intKey Some integer choiceKey Chose one [ a, b, c ] :: KeyChoice String Now I need a data structure to possibly associate a value to the key. data MapG = ... type Value a = a insert :: Key a - Value a - MapG Key Value - MapG Key Value lookup :: Key a - MapG Key Value - Maybe (Value a) I tried implementing this with multiple Map k a's. I tried adding a phantom type on some storage type of to implement KeyChoice as of type Key Int, but I ran into troubles with this approach. I wonder if Dynamic or Type Families could achieve this, but I am quite at a loss and would like to hear your opinion. I did try to search for this a bit, but I don't quite know how to phrase my problem. I'd like to apologize in advance if this question has been asked already. Regards, Alexander Foremny ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe I think you might be looking for something like vault[1]. HTH, Michael [1] http://hackage.haskell.org/package/vault ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe -- Alp Mestanogullari ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Connecting Travis CI and hackage
There is a broader plan, about having Hackage2 (in development) and scoutess (same) work together, but we're not there yet *at all*. But in the meantime, regarding what you suggest here, couldn't be done through tags rather than branches? Tagging a release version could trigger testing and, if testing runs fine, upload to hackage. On Sun, Jul 8, 2012 at 1:21 PM, Dmitry Malikov malikov@gmail.comwrote: *tldr*: is there a way to upload package to hackage from Travis automatically and safely (hiding password to hackage account)? Several days ago I discovered Travis ( http://travis-ci.org/ ) - nice open source build-service, easy to start and monitoring. I've configured some github projects and add build status to it's readme. It's usable to know how is your haskell package building on separate fresh machine. Following git-flow developing model there is a develop branch for snapshots and master branch for release. That why every commit in master branch should produce new release build ⇒ every commit in master branch should produce new hackage build upload. And also it will be nice to have that routine process done automatically. It could be done using cabal-upload tool and --username and --password options. But it means that .travis.yml file should contain my hackage-password explicitly. How can I avoid that? -- Best regards, dmitry malikov ! ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe -- Alp Mestanogullari ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Status of Haskell on Android? Possible ideas to make this happen?
Hi Cafe! I know, this topic comes back on the list from time to time. I know, there probably isn't anything new since the last time it was asked here, on reddit or on SO. However, I remember seeing that iPwn Studios were thinking about getting GHC to build applications for android, in addition to their ghc-iphone project. Is this correct? Is there anything new on that front? Is anyone else working/thinking-to-work on this? Aside from these questions, I'm wondering about the easiest way to get a ghc-android compiler up and running. I have found a few things, but they all look really, really painful and cumbersome, like http://stackoverflow.com/a/5152910/193424 or http://stackoverflow.com/a/7301024/193424 . Recently, I heard about Renderscript: http://developer.android.com/guide/topics/renderscript/index.html Of course, we could write a binding or some kind of EDSL à-la Atom to have some funny apps/games running on Android by generating Renderscript code under the hood. However, something in the Renderscript Runtime Layer section caught my attention: You define your Renderscript code in .rs and .rsh files in the src/ directory of your Android project. The code is compiled to intermediate bytecode by the llvm compiler that runs as part of an Android build. When your application runs on a device, the bytecode is then compiled (just-in-time) to machine code by another llvm compiler that resides on the device. The machine code is optimized for the device and also cached, so subsequent uses of the Renderscript enabled application does not recompile the bytecode. But hey, GHC *does* have an LLVM backend! So can't we somehow break that chain of compilers so that we can plug GHC's LLVM codegen on top of it and then use their llvm-on-the-device thing? I know I am skipping over many, many technical details like how we could have an analog to their reflected layer on the java side but I would really be interested in hearing your opinions/objections/thoughts on this. -- Alp Mestanogullari ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Offer to mirror Hackage
Hi, On Thu, Apr 19, 2012 at 5:12 PM, Ryan Newton rrnew...@gmail.com wrote: - Would the current Haskell.org / hackage infrastructure benefit from the donation of a dedicated VM with good bandwidth/uptime? I can think about at the very least one project (the one you mention below) that would benefit from it. But I think there are a *lot* more that I don't know about too. Are there any updates to this in the last year? Is anybody running a mirror? I know about http://hackage.factisresearch.com/ and http://hackage2.uptoisomorphism.net/ but they both run Hackage2.0 I think. The other reason I've been thinking about this is the scoutess project. More public testing or continuous integration facilities would require more hardware resources. Yes. We have talked about this with Duncan. He was wondering whether there was a way to get scoutess to handle the build bot part of Hackage2.0 and we will develop it so that it can. However, with Jeremy we intend to let people distribute their builds on several machines so you will not be forced to have one machine do all the work. Of course we are not there yet, but I thought you would appreciate hearing about what is planned for scoutess. -- Alp ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] A Modest Records Proposal
Lesson learned: for next year, write a Haskell program that tells if a given -cafe thread or reddit discussion is a April Fool's joke or not. On Sun, Apr 1, 2012 at 7:10 PM, Christopher Done chrisd...@googlemail.comwrote: I actually read the first couple paragraphs and thought “sounds interesting I'll read it later”. After reading it properly, I lol'd. After some initial feedback, I'm going to create a page for the Homotopy Extensional Records Proposal (HERP) on trac. There are really only a few remaining questions. 1) Having introduced homotopies, why not go all the way and introduce dependent records? In fact, are HERP and Dependent Extensional Records Proposal (DERP) already isomorphic? My suspicion is that HERP is isomorphic, but DERP is not. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe -- Alp Mestanogullari ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Open-source projects for beginning Haskell students?
Hi Brent, Would scoutess [1] fit there? There still are *many* things to do in scoutess, and these things can be split up in pretty simple tasks. And when you say 4 weeks, you mean aside from the other courses they have I guess? [1] http://patch-tag.com/r/alpmestan/scoutess/wiki/ On Fri, Mar 16, 2012 at 9:28 PM, Brent Yorgey byor...@seas.upenn.eduwrote: Hi everyone, I am currently teaching a half-credit introductory Haskell class for undergraduates. This is the second time I've taught it. The last time, for their final project I gave them the option of contributing to an open-source project; a couple groups took me up on it and I think it ended up being a modest success. So I'd like to do it again this time around, and am looking for particular projects I can suggest to them. Do you have an open-source project with a few well-specified tasks that a relative beginner (see below) could reasonably make a contribution towards in the space of about four weeks? I'm aware that most tasks don't fit that profile, but even complex projects usually have a few simple-ish tasks that haven't yet been done just because no one has gotten around to it yet. If you have any such projects, I'd love to hear about it! Here are a few more details: * The students will be working on the projects from approximately the end of this month through the end of April. * By relative beginner I mean someone familiar with the material listed here: http://www.cis.upenn.edu/~cis194/lectures.html and just trying to come to terms with Applicative and Monad. They definitely do not know much if anything about optimization/profiling, GADTs, the mtl, or Haskell-programming-in-the-large. (Although part of the point of the project is to teach them a bit about programming-in-the-(medium/large)). * What I would hope from you is a willingness to exchange email and/or chat with the student(s) over the course of the project, to give them a bit of guidance/mentoring. I am certainly willing to help on that front, but of course I probably don't know much about your particular project. thanks! -Brent ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe -- Alp Mestanogullari ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] scoutess Google Summer of Code project ideas for prospective students
Hi, I have written a blog post about potential GSoC projects that revolve around the scoutess project [1] and would, I believe, be useful to the Haskell community: http://alpmestan.wordpress.com/2012/03/21/scoutess-continuous-integration-cabal-and-the-google-summer-of-code/ Feel free to give your opinion and ask questions, in particular if you're a student interested in working on this. There also is a ticket on the Haskell GSoC trac [2]. [1] http://patch-tag.com/r/alpmestan/scoutess/wiki/ [2] http://hackage.haskell.org/trac/summer-of-code/ticket/1612 -- Alp Mestanogullari ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Question about concurrency, threads and GC
Hi, On Sat, Mar 3, 2012 at 10:38 AM, Gregory Collins g...@gregorycollins.netwrote: Hi, The tutorial I gave for CUFP 2011 was a multi-user web chat program using the Snap Framework. STM channels make this kind of problem super-easy to deal with. Don't be afraid of forking lots of Haskell threads for programs like this, because they're green threads, not OS threads (i.e. Haskell threads are M:N multiplexed onto OS threads) and as such they have very little overhead. Maybe you'll find the code interesting: https://github.com/snapframework/cufp2011. The business logic of using STM channels is here: https://github.com/snapframework/cufp2011/blob/master/src/Snap/Chat/ChatRoom.hs That's exactly what I would have needed, several times in the past 2 years. I've been wondering about a good way to abstract this to have a library where you'd just plug your business logic and thus not have to care anymore about the implementation details, once and for all. I don't have the feeling stm-channelize is the best we can achieve. This really can be made simpler from the user's point of view. -- Alp Mestanogullari ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Can I have a typeclass for topological spaces?
It may not be exactly what you want, but I played with https://github.com/luqui/topology-extras/blob/master/TopologyExtras/Topology.hs a few months ago, it may be a good basis to start with. (no pun intended) On Thu, Aug 11, 2011 at 5:08 PM, Grigory Sarnitskiy sargrig...@ya.ruwrote: Oh, I guess the class would look something like that: class TopologicalSpace a where ifOpen :: (Subset a) - Bool and Subset x is a type corresponding to subsets of x. 11.08.2011, 17:52, Grigory Sarnitskiy sargrig...@ya.ru: Hello! I just wonder whether it is possible to have a typeclass for topological spaces? ___ 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 -- Alp Mestanogullari http://alpmestan.wordpress.com/ http://alp.developpez.com/ ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: Interest in a Mathematics AI strike force ?
Ok, then just subscribe to the mailing list, and follow the instructions I gave earlier, so that we'll start discussing about your code's integration in hasklab. Thanks! On Thu, May 6, 2010 at 6:32 PM, Neal Alexander relapse@gmx.com wrote: Alp Mestanogullari wrote: Anyway, would you be willing to integrate your library in that project ? Yea, it's much better to work with a group on stuff like this. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe -- Alp Mestanogullari http://alpmestan.wordpress.com/ http://alp.developpez.com/ ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: Interest in a Mathematics AI strike force ?
On Wed, May 5, 2010 at 6:10 PM, Neal Alexander relapse@gmx.com wrote: Yea, I'm interested. Over the last several months I've been reading a few books on AI and have been trying to distill a Haskell library out of them: The library is pretty primitive so far, but this is what i have laid out: - Neural Networks (usable) - Blackboard Architecture (work in progress) - FSM (usable) - Genetic Algorithms (usable) - Goal Oriented Behaviors (work in progress) - Goal Oriented Planning (work in progress) - Markov Chains (work in progress) - Steering (usable) - Fuzzy Logic (usable) - Decision Tree (work in progress) At the moment I'm working on some constrained delaunay triangulation algorithms to use for spatial reasoning / path planning. That looks awesome! Would you have some time to drop by the #haskell-math IRC channel ? I'm planning to ask for a mailing list and a wiki for the project because a single mailing list thread won't be of help here. But for the moment most discussions happen on #haskell-math. Anyway, would you be willing to integrate your library in that project ? Side note : we're currently discussing the minimal algebra framework we will have to ship with the library, letting us implement general algorithms instead of specific ones (why being restricted to integers when any group / ring / field can be used ? etc). -- Alp Mestanogullari http://alpmestan.wordpress.com/ http://alp.developpez.com/ ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: Interest in a Mathematics AI strike force ?
That could be interesting. I guess we can discuss its integration, and how it would be done. Thus, you may be interested in my next message, about the mailing list and the repository. Thanks for your interest! On Wed, May 5, 2010 at 8:03 PM, Ron Alford ronw...@volus.net wrote: On Wed, May 5, 2010 at 12:10 PM, Neal Alexander relapse@gmx.com wrote: - Goal Oriented Behaviors (work in progress) - Goal Oriented Planning (work in progress) I have a library for PDDL parsing and representation[1] that I used in a recent paper. It's heavy complex types to deal with various extensions to the language. I'm currently updating it for another project, so if you're interested, please let me know! -Ron [1] http://www.cs.umd.edu/projects/planning/data/alford09translating/ ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe -- Alp Mestanogullari http://alpmestan.wordpress.com/ http://alp.developpez.com/ ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Re: Interest in a Mathematics AI strike force ?
Okay, people, if you're interested in this project, there are several things you should / may want to do. First, we now have a mailing list for discussing what should be part of that project, how things will be organized, etc. Please subscribe on this page : http://projects.haskell.org/cgi-bin/mailman/listinfo/hasklab We also have patch-tag project : https://patch-tag.com/r/alpmestan/hasklab/home If you want to participate: - if you already have a patch-tag account, just contact me (via the mailing list for example) for adding you to the project, so that you'll be able to push to the repo - if you don't have a patch-tag account, sign-up on http://patch-tag.com/and then ask for being added to the project. All the details about getting the code or whatever (there is none for the moment, in the upcoming days most of the activity should be on the mailing list) are listed on hasklab's patch-tag page. Finally, we also have a patch-tag wiki, here : https://patch-tag.com/r/alpmestan/hasklab/wiki/ I will edit it the wiki tonight to give some informations about what we discussed, the priorities, etc. Thanks all for your interest, please subscribe to the mailing list in order to discuss about what people are willing to do, how we should to it, etc. -- Alp Mestanogullari http://alpmestan.wordpress.com/ http://alp.developpez.com/ ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: Interest in a Mathematics AI strike force ?
On Thu, May 6, 2010 at 2:19 AM, Ivan Miljenovic ivan.miljeno...@gmail.comwrote: Well, based on what you want your priorites to be, I might bow out then (at least until you start wanting to have graph-centric operations in there, then I might pitch in). Well, we do now want it to be graph-centric, but graphs definitely play a role here! We may want to implement algorithms relying on graphs. On 6 May 2010 04:23, Alp Mestanogullari a...@mestan.fr wrote: Any particular reason for using patch-tag rather than code.haskell.org? For the wiki? Yeah I thought about your objection, but the two main reasons are the gitit wiki (way handier for maths stuffs than trac's) and the easy handling of new contributors and project management -- it is way more manual on c.h.o for example, whereas everything is automated on patch-tag. The user-tied aspect is a bit annoying but should be fine ; i will definitely do mathematics and haskell for a while heh. -- Alp Mestanogullari http://alpmestan.wordpress.com/ http://alp.developpez.com/ ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: Interest in a Mathematics AI strike force ?
We won't hesitate. Anyway, a part of your work will benefit HNN ;-) (and potential a potential Bayesian network library, e.g) Good luck to you for the work on graphs guys! On Thu, May 6, 2010 at 3:20 AM, Ivan Miljenovic ivan.miljeno...@gmail.comwrote: On 6 May 2010 11:17, Alp Mestanogullari a...@mestan.fr wrote: On Thu, May 6, 2010 at 2:19 AM, Ivan Miljenovic ivan.miljeno...@gmail.com wrote: Well, based on what you want your priorites to be, I might bow out then (at least until you start wanting to have graph-centric operations in there, then I might pitch in). Well, we do now want it to be graph-centric, but graphs definitely play a role here! We may want to implement algorithms relying on graphs. OK, how about we do it this way: I'm currently involved in working on FGL with Louis Wasserman and Thomas Bereknyei and so can't really get involved with your strikeforce atm, but if you have an queries or want something done contact me and I'll see what I can do. -- Ivan Lazar Miljenovic ivan.miljeno...@gmail.com IvanMiljenovic.wordpress.com -- Alp Mestanogullari http://alpmestan.wordpress.com/ http://alp.developpez.com/ ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: Interest in a Mathematics AI strike force ?
This is a very interesting idea. I consider it to be a long shot compared to just writing haskell code to perform these tasks, so I don't think it's a priority, except if someone is willing to work on this. But I'd already be quite satisfied with a more complete and uniform framework for mathematics in haskell. On Tue, May 4, 2010 at 4:58 PM, John Creighton johns2...@gmail.com wrote: I know that someone has created a Haskell interpreter for lisp. Perhaps this could server as a starting pointing to creating a translator between lisp and haskell. This is relevant with regards to computer algebra because the computer algebra system Maxima is written is lisp. Their is also a repository of AI programs which are written in lisp. No doubt starting from scratch with haskell would create new possibility but it would be nice to also be able to utilize existing work. On May 3, 7:59 pm, Alp Mestanogullari a...@mestan.fr wrote: Hello -cafe, When I started learning Haskell, I saw the AI page [1] which aimed at creating a sound, uniform and handy framework for AI programming in Haskell. I added my name on it and thought a bit about it. I even wrote a first version of HNN [2], a neural network library, quite early in my Haskell days. I found that idea to be great but did not see any actual effort around this. So, I'm now thinking again about that and even enlarging it to mathematics AI. Thus, I would like to have an idea of the number of people interested in being involved in such an effort. There are several tools out there on hackage but they aren't that much uniform and neither play nicely together. I'm pretty convinced this could be improved and as a Mathematics student I'm highly interested in that. If enough people are interested, we could for example set up a mailing list and a trac to organize the effort and then people could just discuss and write Haskell modules when time permits. Any comment, idea, reaction, interest ? [1]http://www.haskell.org/haskellwiki/AI [2]http://www.haskell.org/haskellwiki/HNN -- Alp Mestanogullarihttp:// alpmestan.wordpress.com/http://alp.developpez.com/ ___ Haskell-Cafe mailing list haskell-c...@haskell.orghttp:// www.haskell.org/mailman/listinfo/haskell-cafe -- You received this message because you are subscribed to the Google Groups Haskell-cafe group. To post to this group, send email to haskell-c...@googlegroups.com. To unsubscribe from this group, send email to haskell-cafe+unsubscr...@googlegroups.comhaskell-cafe%2bunsubscr...@googlegroups.com . For more options, visit this group athttp:// groups.google.com/group/haskell-cafe?hl=en. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe -- Alp Mestanogullari http://alpmestan.wordpress.com/ http://alp.developpez.com/ ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Interest in a Mathematics AI strike force ?
Hello -cafe, When I started learning Haskell, I saw the AI page [1] which aimed at creating a sound, uniform and handy framework for AI programming in Haskell. I added my name on it and thought a bit about it. I even wrote a first version of HNN [2], a neural network library, quite early in my Haskell days. I found that idea to be great but did not see any actual effort around this. So, I'm now thinking again about that and even enlarging it to mathematics AI. Thus, I would like to have an idea of the number of people interested in being involved in such an effort. There are several tools out there on hackage but they aren't that much uniform and neither play nicely together. I'm pretty convinced this could be improved and as a Mathematics student I'm highly interested in that. If enough people are interested, we could for example set up a mailing list and a trac to organize the effort and then people could just discuss and write Haskell modules when time permits. Any comment, idea, reaction, interest ? [1] http://www.haskell.org/haskellwiki/AI [2] http://www.haskell.org/haskellwiki/HNN -- Alp Mestanogullari http://alpmestan.wordpress.com/ http://alp.developpez.com/ ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Interest in a Mathematics AI strike force ?
Ok guys, Ivan takes care of graphs =) Note that it's more about computational mathematics, for things one would do for example with Mathematica or similar softwares. Maybe interested people could come and discuss that on IRC, as a beginning, on a #haskell-math channel for example ? On Tue, May 4, 2010 at 4:17 AM, Ivan Miljenovic ivan.miljeno...@gmail.comwrote: On 4 May 2010 11:59, Alp Mestanogullari a...@mestan.fr wrote: I found that idea to be great but did not see any actual effort around this. So, I'm now thinking again about that and even enlarging it to mathematics AI. Thus, I would like to have an idea of the number of people interested in being involved in such an effort. There are several tools out there on hackage but they aren't that much uniform and neither play nicely together. I'm pretty convinced this could be improved and as a Mathematics student I'm highly interested in that. If enough people are interested, we could for example set up a mailing list and a trac to organize the effort and then people could just discuss and write Haskell modules when time permits. Any comment, idea, reaction, interest ? Well, Dons seems to think I'm a one-man graph strikeforce :p http://www.mail-archive.com/haskell-cafe@haskell.org/msg74763.html -- Ivan Lazar Miljenovic ivan.miljeno...@gmail.com IvanMiljenovic.wordpress.com -- Alp Mestanogullari http://alpmestan.wordpress.com/ http://alp.developpez.com/ ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] GSoC and Machine learning
Note that, if any student is interested, the Haskell Neural Network library [1] is being rewritten from scratch. We (Thomas Bereknyi and I) are discussing many core data structure alternatives, with some suggestions from Edward Kmett. There may even be some room for a rewrite or update of fgl, possibly with an alternative conception, to fit well HNN. I am definitely not sure if this is worth a GSoC and if the community would benefit that much from such a work, but it's there. [1] http://haskell.org/haskellwiki/HNN On Tue, Mar 30, 2010 at 1:55 PM, Grzegorz C pite...@gmail.com wrote: Hi, Ketil Malde-5 wrote: Once upon a time, I proposed a GSoC project for a machine learning library. I still get some email from prospective students about this, whom I discourage as best I can by saying I don't have the time or interest to pursue it, and that chances aren't so great since you guys tend to prefer language-related stuff instead of application-related stuff. But if anybody disagrees with my sentiments and is willing to mentor this, there are some smart students looking for an opportunity. I'd be happy to forward any requests. I don't know whether this is a good idea for a GSoC project, but I would certainly welcome such a library. I am using Haskell a bit for statistical NLP: in my experience currently Haskell is excellent for the components which deal with data preprocessing and feature extraction, but when it comes to implementing the core training algorithms and running them on large data sets, it's easy to get very poor performance and/or unexpected stack overflows. So if a library could provide some well-tuned and tested building blocks for implementing the performance critical parts of machine learning algorithms, it would improve the coding experience in a major way. Best, -- Grzegorz -- View this message in context: http://old.nabble.com/my-gsoc-project-topic-tp28068970p28081419.html Sent from the Haskell - Haskell-Cafe mailing list archive at Nabble.com. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe -- Alp Mestanogullari http://alpmestan.wordpress.com/ http://alp.developpez.com/ ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] GSoC and Machine learning
Well, you can join #hnn or #haskell-soc to discuss that with us. But don't put too much hope on that, I'm quite sure it isn't GSoC worthy. OTOH, any contribution is always welcome heh. On Wed, Mar 31, 2010 at 12:39 PM, Mihai Maruseac mihai.marus...@gmail.comwrote: On Wed, Mar 31, 2010 at 1:19 PM, Alp Mestanogullari a...@mestan.fr wrote: Note that, if any student is interested, the Haskell Neural Network library [1] is being rewritten from scratch. We (Thomas Bereknyi and I) are discussing many core data structure alternatives, with some suggestions from Edward Kmett. There may even be some room for a rewrite or update of fgl, possibly with an alternative conception, to fit well HNN. I am definitely not sure if this is worth a GSoC and if the community would benefit that much from such a work, but it's there. [1] http://haskell.org/haskellwiki/HNN Well, I'd like to tie two of my favourite things together. I'm using neural nets here and there (not for very big tasks though, yet) and I intended to use them in haskell too. The code from [0] was intended to become one day useful for a project on neural nets in Haskell. I would be interested in this project if it will be accepted and there would be mentors. [0]: http://pgraycode.wordpress.com/2010/01/25/a-general-network-module/ -- Mihai Maruseac -- Alp Mestanogullari http://alpmestan.wordpress.com/ http://alp.developpez.com/ ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Domains and Co-Domains
a - b - c is a - (b - c) domain : a codomain : b - c (which is a valid Haskell type, of the functions from b to c) 2010/3/29 Günther Schmidt gue.schm...@web.de Hi, I can easily see how one identifies the domain and co-domain of a unary function. How would the domain of a function be expressed that takes more than one argument and arguments of different type? Günther ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe -- Alp Mestanogullari http://alpmestan.wordpress.com/ http://alp.developpez.com/ ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] State of the Haskell Web Application Stack
gitit [1] is happstack based and is very impressive -- you may want to read its code to see how you can build web applications using happstack (not *on*, for gitit). [1] http://gitit.net/ On Tue, Mar 23, 2010 at 7:05 PM, Ozgun Ataman ozata...@gmail.com wrote: Greetings all. I have been for quite some time trying to assess the feasibility of using Haskell in relatively large, high volume, high availability, long-running web application projects. I have enjoyed learning and using Haskell very much for the past year and I often find myself missing various language features when reasoning about alternatives like Ruby (on Rails). If I can identify the right set of tools for the job, I would really like to take the plunge and make Haskell my standard go-to language in web applications. Here are the couple of key questions that I wanted get your feedback on: 1. Do you consider Haskell and its environment of libraries ready for prime time in web app development as defined above? 2. What collection of libraries would you use in such an effort? 3. What are the up and coming packages/technologies in Haskell-land you would watch out for? Also, here are some core requirements that I would define for such a project: - Ease/speed of development in both back and front-ends, minimal boilerplate - Extendability and flexibility in iterative development - Robustness and reliability in production environment - High performance - Scalability - Ability to interface with new technologies in the future: Cassandra, Redis, memcached, etc. - Ease of implementing common/reusable features across web applications: user authentication, S3 file uploads, thumbnail/image handling, exception notifications, etc. In terms of libraries, I can think of a few key components (as pointed out by several others before) that one would need to arrange: - Choice of server (happstack vs. alternatives) - Templating (xhtml vs. file templates vs. newer efforts like BlazeHtml) - Data/storage layer: HDBC vs. HaskellDB vs. others I know this is a common topic in Haskell-Cafe, but I have failed to identify conclusive opinions from experienced Haskellers out there in previous discussions. My apologies in advance if this is a blatantly redundant post. All the best, Ozgun ___ 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 -- Alp Mestanogullari http://alpmestan.wordpress.com/ http://alp.developpez.com/ ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: Anyone up for Google SoC 2010?
On Thu, Mar 11, 2010 at 2:13 PM, Andrew Coppin andrewcop...@btinternet.comwrote: According to this page, shared libraries are not supported on *any* platform except MacOS. Surely that's no longer true? They are supported on Linux too now [1]. I don't know the status regarding Windows though. [1] http://haskell.org/ghc/docs/latest/html/users_guide/using-shared-libs.html -- Alp Mestanogullari http://alpmestan.wordpress.com/ http://alp.developpez.com/ ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] 3rd party widgets with qtHaskell (Marble)
This something you are afaik able to do. I'm cc'ing David (qthaskell's author). On Wed, Mar 10, 2010 at 1:59 AM, Philip Beadling phil.beadl...@googlemail.com wrote: Hi, I know this isn't a qtHaskell list, but I don't think there is one. Was wondering if anyone has any ideas on the below. Basically I'm trying to control a Marble (Map software) Qt widget from qtHaskell. So I've mocked up a very simple user interface in Qt Designer (1 form, 1 Marble widget). I can load this up and display it fine in Haskell, but as soon as I try to interrogate the widget I get a seg fault (eg qObjectProperty) My guess is that the call to findChild, although it executes OK it is not producing a valid QObject - probably casting to Marble::MarbleWidget* it crux of the problem. I can get this working using standard Qt Widgets (just like the examples show from qtHaskell), so I know the method is sound - although calling 3rd party widgets like this may be ambitious or impossible. I recognise this is a fairly broad query! Has anyone tried anything similar? Is it even possible to do this in qtHaskell as I'm proposing? I'm a Qt novice, so it may well be that I've misunderstood qtHaskell. Cheers, Phil. Using: GHC 6.12.1 / QT4.5 / Marble 0.8 / Ubuntu 9.04 module Main where import Qtc main :: IO () main = do app - qApplication () rok - registerResource marble.rcc loader - qUiLoader () uiFile - qFile :/marble.ui open uiFile fReadOnly ui - load loader uiFile close uiFile () ui_map - findChild ui (Marble::MarbleWidget*, MarbleWidget) sc - qObjectProperty ui_map showCompass qshow ui () ok - qApplicationExec () return () ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe -- Alp Mestanogullari http://alpmestan.wordpress.com/ http://alp.developpez.com/ ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] How do you rewrite your code?
For the style part, I recommend hlint [1]. Regarding the testing, QuickCheck is excellent and I have been happy with it so far. From a more general point of view, I agree with a point of view that many haskellers seem to share, but that Cale Gibbard put in words on #haskell regularly. It consists in looking at your code from a higher point of view and trying to express what you wrote in a sublanguage of primitives and combinators. He pointed to [2] for more details and examples. Hope it helps. [1] http://community.haskell.org/~ndm/hlint/ [2] http://contracts.scheming.org/ On Tue, Mar 2, 2010 at 8:20 PM, Sean Leather leat...@cs.uu.nl wrote: There are numerous threads on the Haskell Café involving rewriting, refactoring, refining, and in general improving code (for some definition of improve). I am interested in seeing examples of how Haskell code can be rewritten to make it better. Some general examples are: - Eta-reduce - Make more pointfree - Introduce monadic operators or do-notation - e.g. for Maybe, lists, State - Eliminate monadic operators or do-notation - Generalize types - e.g. change map to fmap, (++) to mappend - Use instances of Functor, Applicative, Alternative, Category, Arrow, Monoid, Traversable, etc. - Use library functions from Data.List, Data.Map, Data.Set, etc. - Use some form of generic programming (e.g. SYB, Uniplate, EMGM, Alloy) - Use other libraries not included in the Platform My question is simple: *How do you rewrite your code to improve it?* You can answer this in any way you like, but I think the most useful answer is to show a reasonably small, concrete example of what your code looked like before and after. Also, please describe how you think the rewrite improves such code. - Is it better style? More useful? More efficient? - Are the types (before and after) the same? - Are the semantics the same? - How did you prove or test equivalence? (e.g. Can you use equational reasoning to confirm the rewrite is valid? Did you use QuickCheck?) Here is an example that I find myself doing occasionally. For all x, f: x = return . f -- fmap f x or f $ x -- requires importing Control.Applicative I think the right-hand side (RHS) is more concise and simpler. The types here do change: the type constructor has a Monad constraint in the left-hand side and a Functor constraint in the RHS. Types that are Monad instances are generally also Functor instances, so this is often possible. I'm convinced the semantics are preserved, though I haven't proven it. What's an example of a rewrite that you've encountered? Thanks, Sean ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe -- Alp Mestanogullari http://alpmestan.wordpress.com/ http://alp.developpez.com/ ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Where is HEAD?
Download that tarball : http://darcs.haskell.org/ghc-HEAD-2009-10-23-ghc-corelibs-testsuite.tar.gz And then uncompress it, enter the directory, and execute : ./darcs-all pull -a (it may need you to chmod +x it) And then you will have ghc HEAD. On Tue, Mar 2, 2010 at 9:01 PM, Louis Wasserman wasserman.lo...@gmail.comwrote: Where is GHC 6.13 head? I can find sources of 6.13, and darcs for 6.12, but not darcs for 6.13...I'm trying to play with the LLVM backend, and this is the one question it seems to presuppose that you know the answer to. Heh. Louis Wasserman wasserman.lo...@gmail.com http://profiles.google.com/wasserman.louis ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe -- Alp Mestanogullari http://alpmestan.wordpress.com/ http://alp.developpez.com/ ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: How many Haskell Engineer I/II/IIIs are there?
It seems quite big for a 3 months project made by a student, though. 2010/2/11 Matthias Görgens matthias.goerg...@googlemail.com Implementing an alternative RTS for GHC seems like a viable Google Summer of Code project to me. What do you think? -- Alp Mestanogullari http://alpmestan.wordpress.com/ http://alp.developpez.com/ ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe