Re: [Haskell-cafe] What's this pattern called?
I've often seen it referred to as the base functor for a recursive data type. You can then fix that functor in interesting ways i.e. with (Fix, Free, Cofree) and having the explicit base functor allows you to define general purpose recursion schemes over the data type. All of that extra machinery relies on your recursive data type being implemented as a functor with an explicit fixpoint, so base 'functor' seems quite appropriate. -Edward Kmett On Thu, Oct 22, 2009 at 3:47 AM, Martijn van Steenbergen mart...@van.steenbergen.nl wrote: Bonjour café, data ExprF r = Add r r | Sub r r | Mul r r | Div r r | Num Int This is a well-known pattern that for example allows nice notation of morphisms. But what is it called? I've heard fixed-point view, open datatypes and some others, but I'm curious where this pattern comes up in literature and what it is called there. Thanks, Martijn. ___ 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] why cannot i get the value of a IORef variable ?
Anton van Straaten wrote: On the plus side, this does make for a slogan with high market appeal: Haskell: Kittens inside Thanks. Now I have trouble getting this image of lambda-shaped bonsai kittens out of my head. ;-) Martijn. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Lazy problem ?
ssqHitNum.txt contains data as below: 6 7 18 24 30 32 9 4 12 20 25 28 29 16 3 5 11 12 31 32 11 2 9 13 15 19 24 3 5 17 21 25 27 32 14 5 9 15 21 26 31 13 12 16 25 26 27 31 05 ... good_ssq_red:: IO [Int] good_ssq_red = withFile ssqHitNum.txt ReadMode (\h - do { samp - fmap str2Ints $ hGetContents h; print samp;--without this line, the result will always [1..16] return $ statis samp; }) statis :: [Int] - [Int] statis samp = take 16 $ map (\(a,b) - a) $ sortBy (\a b- if (snd a = snd b) then LT else GT) $ times4n where times = map (\n - (foldl (\acc x - if x==n then acc+1 else acc) 0 samp)) [1..33] times4n = map (\n - (n,times!!(n-1))) [1..33] Does it mean that the sampe will not be evalued with `print samp` line ? thanks! -- View this message in context: http://www.nabble.com/Lazy-problem---tp26021845p26021845.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
[Haskell-cafe] FW: Free Pizza, C++, and Haskell
You may enjoy this interesting blog post by Bartosz Milewski about understanding C++ template metaprogramming by starting with Haskell. http://bartoszmilewski.wordpress.com/2009/10/21/what-does-haskell-have-to-do-with-c/ Bartosz gave the talk at the Northwest C++ users group; the video for the talk will be linked eventually on the NWCPP website: http://nwcpp.org/ Simon ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Lazy problem ?
Hello zaxis, Friday, October 23, 2009, 11:15:01 AM, you wrote: good_ssq_red = withFile ssqHitNum.txt ReadMode (\h - do { samp - fmap str2Ints $ hGetContents h; print samp;--without this line, the result will always [1..16] return $ statis samp; }) withFile and hGetContents shouldn't be used together. both closes file handle and, here, withFile closes it before hGetContents lazily reads data. it's why you need to force reading with print use readFile instead -- Best regards, Bulatmailto:bulat.zigans...@gmail.com ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Re: ANN: Data.Stream 0.4
Bas van Dijk wrote: 1) What's the difference between your: tail ~(Cons _ xs) = xs and the more simple: tailStrict (Cons _ xs) = xs ? I know they're desugared to: tail ys = let Cons _ xs = ys in xs and: tailStrict ys = case ys of Cons _ xs - xs respectively. But aren't they operationally the same: tail undefined = undefined and: tailStrict undefined = undefined I concur, a strict tail is enough. Writing foo xs = bar (tail xs) has the same effect as foo xs = bar (tailStrict xs) since the evaluation of xs is deferred in both cases. Regards, apfelmus -- http://apfelmus.nfshost.com ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Lazy problem ?
good_ssq_red:: IO [Int] good_ssq_red =do { samp - fmap str2Ints $ readFile ssqHitNum.txt; return $ statis samp; } It works now ! thank you Bulat Ziganshin-2 wrote: Hello zaxis, Friday, October 23, 2009, 11:15:01 AM, you wrote: good_ssq_red = withFile ssqHitNum.txt ReadMode (\h - do { samp - fmap str2Ints $ hGetContents h; print samp;--without this line, the result will always [1..16] return $ statis samp; }) withFile and hGetContents shouldn't be used together. both closes file handle and, here, withFile closes it before hGetContents lazily reads data. it's why you need to force reading with print use readFile instead -- Best regards, Bulatmailto:bulat.zigans...@gmail.com ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe -- View this message in context: http://www.nabble.com/Lazy-problem---tp26021845p26022301.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
Re[2]: [Haskell-cafe] Lazy problem ?
Hello zaxis, Friday, October 23, 2009, 12:02:57 PM, you wrote: btw, good_ssq_red = fmap (statis.str2Ints) $ readFile ssqHitNum.txt or good_ssq_red = (statis.str2Ints) `fmap` readFile ssqHitNum.txt good_ssq_red:: IO [Int] good_ssq_red =do { samp - fmap str2Ints $ readFile ssqHitNum.txt; return $ statis samp; } It works now ! thank you Bulat Ziganshin-2 wrote: Hello zaxis, Friday, October 23, 2009, 11:15:01 AM, you wrote: good_ssq_red = withFile ssqHitNum.txt ReadMode (\h - do { samp - fmap str2Ints $ hGetContents h; print samp;--without this line, the result will always [1..16] return $ statis samp; }) withFile and hGetContents shouldn't be used together. both closes file handle and, here, withFile closes it before hGetContents lazily reads data. it's why you need to force reading with print use readFile instead -- Best regards, Bulatmailto:bulat.zigans...@gmail.com ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe -- Best regards, Bulatmailto:bulat.zigans...@gmail.com ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Re: Time and space complexity of take k . sort
Paul Johnson wrote: Paul Johnson wrote: takeLargest k = take k . sort Because sort is lazily evaluated this only does enough sorting to find the first k elements. I guess the complexity is something like O(n*k*log(k)). Correction: O(n*log(k)) It's O(n + k log k) (which is the same as O(n + k log n) ): http://apfelmus.nfshost.com/quicksearch.html The remark about O(k) space complexity of the other algorithm is interesting, since this means that it's not even allowed to copy its argument of size O(n) . Regards, apfelmus -- http://apfelmus.nfshost.com ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: Re[2]: [Haskell-cafe] Lazy problem ?
Or good_ssq_red = readFile ssqHitNum.txt = return . statis . str2Ints I personally prefer this because I like how the = illustrates that the result is being fed into return . statis . str2Ints, but it is a matter of style. :-) Cheers, Greg On Oct 23, 2009, at 1:09 AM, Bulat Ziganshin wrote: Hello zaxis, Friday, October 23, 2009, 12:02:57 PM, you wrote: btw, good_ssq_red = fmap (statis.str2Ints) $ readFile ssqHitNum.txt or good_ssq_red = (statis.str2Ints) `fmap` readFile ssqHitNum.txt good_ssq_red:: IO [Int] good_ssq_red =do { samp - fmap str2Ints $ readFile ssqHitNum.txt; return $ statis samp; } It works now ! thank you Bulat Ziganshin-2 wrote: Hello zaxis, Friday, October 23, 2009, 11:15:01 AM, you wrote: good_ssq_red = withFile ssqHitNum.txt ReadMode (\h - do { samp - fmap str2Ints $ hGetContents h; print samp;--without this line, the result will always [1..16] return $ statis samp; }) withFile and hGetContents shouldn't be used together. both closes file handle and, here, withFile closes it before hGetContents lazily reads data. it's why you need to force reading with print use readFile instead -- Best regards, Bulatmailto:bulat.zigans...@gmail.com ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe -- Best regards, Bulatmailto:bulat.zigans...@gmail.com ___ 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] TimeZone bug?
Hi, As we know, CST could mean both +8 or -6 time zone. So I got a problem. In the same envoironment. When a ZonedTime is shown, I got x CST. Now it means +8 time zone. Then I read it, stupidly, it turns into -6 time zone. How could I fix this? I am using ghc 6.10.4 in rhel 5. -- 竹密岂妨流水过 山高哪阻野云飞 ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] What's this pattern called?
Thanks for all the pointers, guys. You've been very helpful. I also found Type-indexed data types (Hinze et al) to be a good source. Much appreciated! Martijn. Martijn van Steenbergen wrote: data ExprF r ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] ANN: Data.Stream 0.4
1) What's the difference between your: tail ~(Cons _ xs) = xs and the more simple: tailStrict (Cons _ xs) = xs ? I'm no expert - but I can't think of any difference at all. 2) Why don't you also use an irrefutable pattern in take? take is now defined as: This is a trickier question: should take 0 undefined by [] or undefined? I'm not sure what the best choice is. I suppose it makes sense to stick with the behaviour of Data.List and return an empty list, even if any program that relies on this not being undefined is probably broken. I've uploaded a new version. Thanks for your comments! Wouter ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Newbie has trouble using QuickCheck
Hello. I have made a simple test.hs file that imports the module QuickCheck. However, when I load this module in ghci, it says that the module QuickCheck is not found. I have looked in my haskell platform folder and find the folder QuickCheck 1.2.0.0. I also tried to :set -package QuickCheck. This added QuickCheck to the list of loaded packages. However when loading my test module it still says Could not find module QuickCheck. Locations searched were QuickCheck.hs and QuickCheck.lhs What's wrong? Thanks, Remy. -- View this message in context: http://www.nabble.com/Newbie-has-trouble-using-QuickCheck-tp26024248p26024248.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
Re: [Haskell-cafe] Newbie has trouble using QuickCheck
What's wrong? The package is called QuickCheck. The package consists of a number of modules. The main module is called Test.QuickCheck. So import Test.QuickCheck should bring all relevant symbols in scope. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Time Typeable Instances
On Tue, 2009-10-13 at 08:48 -0500, John Goerzen wrote: Now I'm getting complaints from people using 6.10.4 saying that there are now missing instances of Typeable with time 1.1.2.4. Right, because 1.1.2.4 is an earlier version than 1.1.3 which is the random intermediate snapshot version included in the ghc-6.10.3 extralibs collection and the version where the Typable instances were added. So the problem you're noticing is that some people are using 1.1.2.4 and others are using 1.1.3 or 1.1.4 and these are not related to the version of ghc that they are using, so using the ghc version as a proxy fails. 1) Did the Typeable instances get dropped again from time? No. 2) What exactly should I do so this library compiles on GHC 6.8 and 6.10.x? Depend on the time library and use one of the following techniques: If you're prepared to depend on Cabal-1.6 then you can use the cpp macros that let you do conditional compilation on the version of a package you depend on. You mention that the time only incremented the 4th digit when it added the instances but I don't think that's right. My time-1.1.2.4 has no Typeable instances but 1.1.4 does (and I believe 1.1.3 did too). So you should be able to use this mechanism. Alternatively you can use the flag hack in the .cabal file: flag annoying-time-instances library ... if flag(annoying-time-instances) build-depends: time = 1.1.3 else build-depends: time 1.1.3 cpp-options: -DUSE_OWN_TIME_TYPABLE_INSTANCES so it appears that what's happening here is that GHC 6.10.3 extralibs included time 1.1.3, but then haskell-platform standardized on 1.1.2.4. This is pretty annoying -- that haskell-platform would standardize on a version older than what shipped with a GHC release -- but I guess I can work around it by restricting my build-dep to be time 1.1.3 and re-adding the instances. No, it's the haskell-platform that was and is doing the right thing and it is ghc that subsequently accidentally shipped a random development snapshot. The platform has a commitment to provide API compatible versions of packages within a major series. The first release of the platform used time-1.1.2.4 (along with ghc-6.10.2) and thus it could not include the time-1.1.3 that the subsequent release of ghc-6.10.3 accidentally included. Duncan ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] FW: Free Pizza, C++, and Haskell
Nice article from Bartosz , thanks for sharing this. The best comment (and oh so true IMO) on his article is: I agree, however, a little more familiarity than that may result in the desire never to see another line of C++ again, so you have to be careful. Although learning Haskell improved my programming skills greatly, it also took away some of the joy I had in other programming languages like C++. C# 3.0 4.0 are the exception, it offers just the right balance for me (maybe F# or Scala too, I don't have enough experience with those). Maybe because Haskell had a fair bit of influence on C#? At least that's what I could make out of this very enjoyable video of Eric Meijer (http://channel9.msdn.com/shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx/) On Fri, Oct 23, 2009 at 9:37 AM, Simon Peyton-Jones simo...@microsoft.com wrote: You may enjoy this interesting blog post by Bartosz Milewski about understanding C++ template metaprogramming by starting with Haskell. http://bartoszmilewski.wordpress.com/2009/10/21/what-does-haskell-have-to-do-with-c/ Bartosz gave the talk at the Northwest C++ users group; the video for the talk will be linked eventually on the NWCPP website: http://nwcpp.org/ Simon ___ 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] Re: Help me improve design of my project.
Andy Stewart lazycat.mana...@gmail.com writes: Hi all, Okay, question is, IORefObject module and most module reference each other, so i will got `recursive reference problem` (looks how many .hs-boot in my project). Current version compile fine. The key is design of IORefObject, It's too close with Manatee.UI.* modules, they're import each other, make i need .hs-boot file to avoid recursive reference problem. And those strongly connect components point that's a bad design at IORefObject. So any suggestions are welcome! Thanks, -- Andy ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] ANN: haskell-src-exts-1.2.0
Fellow Haskelleers, I'm pleased to announce the release of haskell-src-exts-1.2.0! * On hackage: http://hackage.haskell.org/package/haskell-src-exts * Via cabal: cabal install haskell-src-exts * Darcs repo: http://code.haskell.org/haskell-src-exts Version 1.2.0 is a new major release, following the PVP, as it contains a few backwards-incompatible changes, as well as some major changes that are supposedly backwards-compatible in theory, but as much of it is new and untested in practice there may be some regressions (bugs). The main new thing in 1.2.0 is the integration of the Annotated machinery into the package proper, for instance all parsing is now handled by the fully location-aware parser. haskell-src-exts-1.2.0: * Language.Haskell.Exts.Annotated.Simplify provides translation from an annotated AST to the old simple AST. * Behind-the-scenes integration of the new exact parser and lexer to do all parsing (using the above mentioned simplifier if the old AST version is requested). * All syntactic nodes now derive Eq, Ord and Show. * Pretty instance for SrcSpan. * Top-level expressions are now treated as implicit TH splice declarations (as per GHC HEAD). Note that this incurs a non-backwards-compatible change to the AST. * Empty data declarations may now have explicit kind annotations. * AST (and Pretty/Exact) support for kind variables (not yet parser support). * Error messages now extensively use prettyPrint instead of show for AST elements and locations, leading to way neater messages. * Bug fix to not crash ungracefully when encountering type equality predicates in proper types. * Liberalise line comments (as per GHC) to allow a line comment on the last line of a source file. Please help me test and report! Grab a darcs version, put your source files in the Test/examples dir, and go cabal test (in the top dir). Any failing cases not due to CPP or literate source files (for the exact-printer), please report to the trac: http://trac.haskell.org/haskell-src-exts Cheers, /Niklas ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Re: ANN: haskell-src-exts-1.2.0
* On hackage: http://hackage.haskell.org/package/haskell-src-exts * Via cabal: cabal install haskell-src-exts Actually, it seems something went awry. I got a 500 Internal Server Error on my cabal upload, the package is there on hackage but it seems it was never added to the list of packages. This means cabal update doesn't know about it, nor is it listed on the What's New page. Anyone know what's up with that, and how it can be fixed? Cheers, /Niklas ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Re: \Statically checked binomail heaps?
Maciej Kotowicz asked about implementing binomial heaps using types to enforce the shape invariants. I dug up an old email from 1998 talking about how to do this with nested types, and posted it to my blog: http://okasaki.blogspot.com/2009/10/binomial-queues-as-nested-type.html -- Chris ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Announcing: PastePipe -- a CLI for hpaste instances
I'm happy to announce PastePipe (v1.3)! PastePipe reads from stdin and publishes whatever it reads to the hpaste instance of your choice (defaulting to hpaste.org). This makes it trivial to. * post a file to hpaste.org: `cat file | pastepipe' * turn a terminal into a pastebin window: 'pastepipe' (ctrl-d to close send) * upload error output as a paste: 'faultyProgram | pastepipe -t faultyProgram error output -l bash' * paste to a local hpaste instance: 'pastepipe --uri http://my.local.hpaste/fastcgi/hpaste.fgci/' * add a title, select different languages, specify a user name, etc... see pastepipe --help for details. PastePipe will output the resulting url for your new paste to stdout, so you can script it, or just copy / paste that as you need. Availability: --- It is available on Hackage (so you can 'cabal install PastePipe'): http://hackage.haskell.org/package/PastePipe The project for pastepipe is hosted at Google Code, with the source in mercurial: Homepage (issue tracker, etc): http://code.google.com/p/pastepipe/ Mercurial repo: hg clone https://pastepipe.googlecode.com/hg/ pastepipe --- Please let me know of any bugs / feature requests / etc. (or just post them to the issue tracker.) Thanks! Rogan ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: ANN: haskell-src-exts-1.2.0
Niklas Broberg wrote: Actually, it seems something went awry. I got a 500 Internal Server Error on my cabal upload, the package is there on hackage but it seems it was never added to the list of packages. This means cabal update doesn't know about it, nor is it listed on the What's New page. Anyone know what's up with that, and how it can be fixed? I have exactly the same problem with the package I uploaded tonight. I sent Don and Duncan an email but I don't know whether they are the right people to bother. Martijn. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] What does :*: mean again?
Günther ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] What does :*: mean again?
Nothing by itself. It's just a definable constructor of some sort. - Jake ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] What does :*: mean again?
gue.schmidt: Günther Usually it is a strict product. It's just a type constructor of some sort though ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Haskell Weekly News: Issue 136 - October 24, 2009
--- Haskell Weekly News http://sequence.complete.org/hwn/20091024 Issue 136 - October 24, 2009 --- Welcome to issue 136 of HWN, a newsletter covering developments in the [1]Haskell community. Short one this week, I have GREs today, so I've spent more time aggregating GRE knowledge rather than Haskell news. Till next week, Haskellers, The Haskell Weekly News! Announcements PastePipe -- a CLI for hpaste instances. Rogan Creswick [2]announced a new version of PastePipe, a library which reads from stdin and posts it to an hpaste instance (defaulting to hpaste.org) haskell-src-exts-1.2.0. Niklas Broberg [3]announced a major release of haskell-src-exts. Several breaking changes, a few (ideally) backwards compatable changes. See the post for all the details. mecha-0.0.0. Tom Hawkins [4]announced a very cool new DSL in Haskell for Constructive Solid Modelling. GPipe 1.02 and Vec-Transform 1.0.1. Tobias Bexelius [5]announced new versions of these packages, only a few API changes Data.Stream 0.4. Wouter Swierstra [6]announced a very delicate change to Data.Stream involving irrefutable patterns. Specifically added them in functions which produce new streams from old. strptime bindings. Eugene Kirpichov [7]announced bindings to strptime. cereal-0.2. Trevor Elliott [8]announced a new version of the cereal library, a variation on the `binary` package which provides strict parsing. quickcheck-poly. Ki Yung Ahn [9]announced a package for testing polymorphic functions automatically. 2nd CFP: JSC Special Issue on Automated Verification and Specification of Web Systems. demis [10]announced a special issue of the Journal of Symbolic Computation. The issue contains articles relating to Automated Specification and Verification of Web Systems. qtHaskell-1.1.3. David Harley [11]announced a new version of qtHaskell. Discussion Is there in Haskell the eval function? Waldemar Biernacki [12]asked about an `eval` function for Haskell. What's this pattern called? Martijn van Steenbergen [13]asked about a common pattern for an simple EDSL AST-like type. Problems with Haskell. Philippos Apolinarius [14]forwarded his response to a [15]Clean programmer who planned a move to Haskell upon fears of Clean being around for the long term. A very nice read. Statically checked binomail heaps? Maciej Kotowicz [16]talked about his implementation of Statically Checked Binomial Heaps in Haskell Blog noise [17]Haskell news from the [18]blogosphere. Blog posts from people new to the Haskell community are marked with , be sure to welcome them! * Mikael Vejdemo Johansson (Syzygy-): [19][MATH198] Lecture 5 is up. * JP Moresmau: [20]Releasing my code on the unsuspecting public (EclipseFP). * Neil Brown: [21]Benchmarking STM with Criterion. * Galois, Inc: . * Brent Yorgey: [22]Typeclassopedia in Japanese!. * Neil Brown: [23]An early look at ThreadScope, a tool for profiling concurrent and parallel Haskell programs. * FP-Syd: [24]Sydney FP Group: FP-Syd #19.. * Michael Snoyman: [25]Monadic pairs and Kleisli arrows. * Martijn van Steenbergen: [26]Transforming polymorphic values. * Manuel M T Chakravarty: [27]Multicore Haskell Now!. * Don Stewart (dons): [28]Multicore Haskell Now! ACM Reflections | Projections 2009. * Dan Piponi (sigfpe): [29]What Category do Haskell Types and Functions Live In?. * Manuel M T Chakravarty: [30]Don Stewart's talk on Domain Specific Languages and Haskell. Quotes of the Week * Veinor: I program in austere haskell. I name all my variables a, a', a'', a''', etc * ddarius: releases network version 127.0.0.1 * Berengal: 'Bobby Boolean felt horrible. What did he ever do to the other values? He was just a simple bit, a simple answer to a simple question! Suddenly he felt his insides churn; he felt an exception coming on! Oh no! What should he do, now that he was outside of IO?' * Berengal: 'Go away! You're not like us! the other values yelled. You're impure! Impure! Impure! Impure! they started chanting.' * dpratt71: dpratt71 so I read somewhere that the unofficial motto of Haskell was avoid success at all costs... Baughn dpratt71: Yeah. We failed. * Warrigal: Note to self: don't do maximum [1..]. * mauke: the first and foremost task of a haskell compiler is to break haskell programs * ksf: ...premature generalisation is the root of all procrastination. * jimi_hendrix: that took longer than it should have, but it feels so pure * ddarius: Unfortunately, the logic programming community has this unhealthy death grip on Prolog.