Welcome to issue 167 of the HWN, a newsletter covering developments in the Haskell community. This release covers the week of January 23 to 29, 2011.
This week I've added a section which compiles a list of the top answers given in StackOverflow during the week. These seem to be of more interest to more experienced Haskell users than the newbie questions usually posted on the site. See what you think.
R. Emre Basar annouced the release of follower, a tool that allows you to follow people's tweets without having an account with Twitter.
Alberto Ruiz announced hmatrix version 0.11, a package for numerical computation based on LAPACK and SGL.
Michael Snoyman made some point updates for WAI and Warp. "They fix some documentation issues, add some status aliases, make it possible to handle exceptions more easily, and make things more responsive on Windows."
Antoine Latter announced a minor point release for Parsec 3.1.0.
John Meacham announced version 0.7.7 of jhc is out! "This release fixes a large number of bugs that cropped up when compiling haskell out in the wild as well as adds some more features. A major one being the garbage collector is enabled by default."
Quotes of the Week
- Twey: Maybe Bool: the Haskell equivalent to True/False/FileNotFound
- elliott: Only two things in the universe are certain: Death, and two of the libraries you've decided to use taking different types of ByteString.
- shapr: my personal heuristics judge Haskell as totally practical, perhaps too practical.
- monochrom: the guys that I see when I look into the irc window believe that I'm just a bunch of text.
- bernardh: Refactoring: spend a week to get where you were
- Question: How do I use "fix", and how does it work? Answer (by TomMD): The prank answer is "fix has no real use, it's just there so you can type 'fix error' in ghci and feel good about yourself."
Top Reddit Stories
- Haskell at Bump: From (devblog.bu.mp), scored 44 with 9 comments. Read on reddit or the original post.
- How to write a simple TCP Server in Haskell: From (catonmat.net), scored 35 with 5 comments. Read on reddit or the original post.
- Snap Framework article in IEEE Internet Computing: From (steve.vinoski.net), scored 32 with 1 comments. Read on reddit or the original post.
- My Dream GHCi Session, Take 2: From (cdsmith.wordpress.com), scored 23 with 5 comments. Read on reddit or the original post.
- Text: a visual programming language based on Haskell, demo: From (vimeo.com), scored 20 with 3 comments. Read on reddit or the original post.
- Hoogle Embed: From (neilmitchell.blogspot.com), scored 16 with 3 comments. Read on reddit or the original post.
- What does this mean for Haskell on Android?: From (reddit.com), scored 15 with 12 comments. Read on reddit or the original post.
- Evolving a computer with Genprog (exercises from the TECS book): From (jpmoresmau.blogspot.com), scored 13 with comments. Read on reddit or the original post.
- All about MVars : Inside T5: From (blog.ezyang.com), scored 13 with 4 comments. Read on reddit or the original post.
- What textbooks would be useful to start approaching the low-hanging fruit on the ghc project?: From (self.haskell), scored 12 with 8 comments. Read on reddit or the original post.
Top StackOverflow Answers
- What is an idiomatic way to add lists in Haskell? votes: 14There is a zipWith library function that combines two lists by using a supplied function. It does exactly what you want here and you get: addLists = zipWith (+) This uses (+) to combine the elements of lists given as further arguments.
- Why don't the Haskell standard libraries make more use of polymorphism? votes: 15There is a very good pragmatic reason that "standard" Haskell (Prelude + base + maybe some more) doesn't use more polymorphism: Designing general-use type classes is hard. Good designs for classes that abstract over container types like lists, arrays and "bytestrings" (personally I don't really consider Bytestring a container) aren't floating round waiting ...
- How do I use fix, and how does it work? votes: 17You are doing nothing wrong. fix id is an infinite loop. When we say that fix returns the least fixed point of a function, we mean that in the domain theory sense. So fix (\x -> 2*x-1) is not going to return 1, because although 1 is a fixed point of that function, it is not the least one in the domain ordering. I can't describe the domain ordering in ...
Top StackOverflow Questions
- Why don't the Haskell standard libraries make more use of polymorphism? (votes: 20, answers: 4) read
- How do I use fix, and how does it work? (votes: 11, answers: 3) read
- Why wrapping the Data.Binary.Put monad creates a memory leak? (votes: 11, answers: 2) read
- Is there any kind of statistical natural language processing library for Haskell? (votes: 9, answers: 1) read
- How do you structure a stateful module in Haskell? (votes: 8, answers: 2) read
About the Haskell Weekly News
Special thanks to Jean-Philippe Gariepy for sending in a quote for this weeks quotes! We need more eyes!
To help create new editions of this newsletter, please send
email@example.com. I'm in dire need of
finding good "quotes of the week". If you happen to come across
any, please don't hesitate to send it along.
Until next time,
Daniel Santa Cruz