[Haskell] Haskell Weekly News: Issue 172
Daniel Santa Cruz
dstcruz at gmail.com
Thu Mar 10 04:28:00 CET 2011
Welcome to issue 172 of the HWN, a newsletter covering developments in
the [1]Haskell community. This release covers the week of February 27
to March 05, 2011.
Announcements
Jasper Van der Jeugt [2]announced the release of version 3 of Hakyll.
He informs us that this is a complete re-write, and not backwards
compatible.
Horvath Zoltan [3]informed us about the 4th Central European Functional
Programming School (CEFP 2011), which is to take place in Eotvos Lorand
University, Budapest, Hungary, from June 14-24, 2011. "The invited
lecturers are the most prominent researchers in the field in Europe,
and they will present state-of-the-art functional programming
techniques."
Janis Voigtlander [4]issued a call for papers for the 20th
International Workshop on Functional and (Constraint) Logic Programming
(WFLP 2011) to be held in Odense, Denmark, on July 19, 2011.
Michael Hanus [5]issued a call for papers for the 13th International
ACM SIGPLAN Symposium on Principles and Practice of Declarative
Programming (PPDP 2011) to be held in Odense, Denmark, on July 20-22,
2011.
Trystan Spangler [6]released a new version (0.3.0) of hspec, with
"improvements including fixing a base dependency problem, and better
reporting of failed examples."
Magnus Therming [7]released new versions of dataenc (0.14), and
omnicodec (0.5). "It contains a large change to the API. The old,
rather simplistic, lazy API has been removed. It has been replaced by
an API based on incremental encoding/decoding. This should make the
library easier to use together with left-fold enumerators..."
Rogan Creswick [8]announced that cabal-dev 0.7.4.0 has been uploaded to
hackage. "We strongly suggest that everyone upgrade to this release,
since this release specifically addresses changes in Cabal-1.10 and
newer, which the latest cabal-install new uses."
Frederick Ross [9]announced a minor upgrade to haskell-pgm (0.1.2),
with a minor upgrade to the library to make it work with GHC 7.
Uwe Schmidt [10]announced an update to hxt to version 9.1.
Eric Kow [11]announced that the date and venue for the sixth Darcs
Hacking sprint has been confirmed for Paris, April 1-3, 2011.
Ian Lynagh and the GHC Team [12]announced a new patchlevel release of
GHC. "This release contains a number of bugfixes relative to 7.0.1, so
we recommend upgrading."
Denis Bueno [13]announced new releases of funsat (0.6.2) and bitset
(1.1).
Michal Konecny [14]announced version 0.3.2 of hmpfr, bindings to the
MPFR arbitrary precision floating point arithmetic library. "The
changes in this version are quite small but significant."
Jonathan Daugherty [15]announced version 1.0 of the vty-ui terminal
user interface library. "The vty-ui library is a complete interactive
user interface development toolkit for terminal applications."
Jason Dusek [16]announced his now bash-0.0.0, which has "types and
functions for generation of Bash scripts, with safe escaping and
composition of large subsets of Bash statements and expressions."
Quotes of the Week
* lpsmith: I didn't take the time to figure out what should be done
in finite cases.
* <companion_cube> edwardk, you mean it's 2 phD/nick in average ? :)
<edwardk> clearly this is why SPJ stays away, he doesn't want to
dilute that metric.
* edwardk: Haskell 98 is a laudable goal.
* douglas-adams: I love deadlines, I especially like the swooshing
sound they make as they fly past
* kmc: the way to convert imperative code to functional is to think
about what your code actually means, and then throw out most of the
irrelevant details that imperative programming has forced on you
* MonadsSuck: man, I hate it when an adjoint pair of functors get
together and compose. So damn annoying
* bwright: I don't get it everyone keeps telling me java is a safe
language but it melted the plastic on my eeepc900
* danka: you could be a monadic vampire. I hear they bleed
semicolons.
Top Reddit Stories
* ANNOUNCE: GHC version 7.0.2: From (haskell.org), scored 46 with
comments. Read on [17]reddit or the [18]original post.
* Greenfield Haskell: From (self.haskell), scored 36 with 188
comments. Read on [19]reddit or the [20]original post.
* Patches for monad comprehensions are in and will be in the upcoming
GHC 7.2 release: From (hackage.haskell.org), scored 34 with 15
comments. Read on [21]reddit or the [22]original post.
* GHC 7.0.2 released!: From (haskell.org), scored 32 with 10
comments. Read on [23]reddit or the [24]original post.
* Haskell on Android: From (self.haskell), scored 31 with 22
comments. Read on [25]reddit or the [26]original post.
* Do you think Haskell will ever catch on?: From (self.haskell),
scored 26 with 63 comments. Read on [27]reddit or the [28]original
post.
* hakyll 3.0 released (static site generator): From (jaspervdj.be),
scored 25 with 1 comments. Read on [29]reddit or the [30]original
post.
* New release of cabal-dev: sandboxed, reproducible build
environments for Haskell: From (haskell.org), scored 24 with 9
comments. Read on [31]reddit or the [32]original post.
* News on Well-Typed, the Parallel GHC Project, and Eric Kow joins
the team.: From (well-typed.com), scored 22 with 3 comments. Read
on [33]reddit or the [34]original post.
* Build Yourself a Bluetooth Controlled Six-Legged Robot : A
Neighborhood of Infinity: From (blog.sigfpe.com), scored 21 with
comments. Read on [35]reddit or the [36]original post.
Top StackOverflow Answers
* [37]Goto in Haskell: Can anyone explain this seemingly insane
effect of continuation monad usage? votes: 14
Here's a somewhat informal answer, but hopefully useful. getCC'
returns a continuation to the current point of execution; you can
think of it as saving a stack frame. The continuation returned by
getCC' has not only ContT's state at the point of the call, but
also the state of any monad above ContT on the stack. When you
restore that state by calling the ...
* [38]How do Haskell compilers decide whether to allocate on the heap
or the stack? votes: 13
When you call a function like this
f 42 (g x y)
then the runtime behaviour is something like the following:
p1 = malloc(2 * sizeof(Word))
p1[0] = &Tag_for_Int
p1[1] = 42
p2 = malloc(3 * sizeof(Word))
p2[0] = &Code_for_g_x_y
p2[1] = x
p2[2] = y
f(p1, p2)
That is, arguments are usually passed as pointers to objects on
the heap like in Java, but ...
* [39]Quick question about Arrow operators votes: 11
(***) :: (Arrow a) => a b c -> a b' c' -> a (b, b') (c, c')
So specialize a to -> and we get:
(***) :: (Arrow a) => (b -> c) -> (b' -> c') -> (b, b') -> (c, c')
And that's great, except we want to, for whatever reason, take
the first two arguments as a single pair instead. But that's
easy, we just uncurry.
Prelude ...
* [40]QuickCheck: defining Arbitrary instance in terms of other
Arbitraries votes: 9
I'd do it like this:
instance Arbitrary C
where arbitrary = do a <- arbitrary
b <- arbitrary
return (C a b)
Although sclv's idea of using liftM2 from Control.Monad is
probably better:
instance Arbitrary C
where arbitrary = liftM2 C arbitrary arbitrary
Top StackOverflow Questions
* Running a Haskell program on the Android OS (votes: 21, answers: 1)
[41]read
* Goto in Haskell: Can anyone explain this seemingly insane effect of
continuation monad usage? (votes: 18, answers: 2) [42]read
* Proving equality of streams (votes: 15, answers: 1) [43]read
* Rotate the first argument to a function to become nth (votes: 12,
answers: 7) [44]read
* How do Haskell compilers decide whether to allocate on the heap or
the stack? (votes: 9, answers: 2) [45]read
About the Haskell Weekly News
To help create new editions of this newsletter, please send stories to
dstcruz at gmail.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
References
1. http://haskell.org/
2. http://article.gmane.org/gmane.comp.lang.haskell.hakyll/128
3. http://article.gmane.org/gmane.comp.lang.haskell.general/18527
4. http://article.gmane.org/gmane.comp.lang.haskell.general/18528
5. http://article.gmane.org/gmane.comp.lang.haskell.general/18530
6. http://article.gmane.org/gmane.comp.lang.haskell.general/18533
7. http://article.gmane.org/gmane.comp.lang.haskell.libraries/15426
8. http://article.gmane.org/gmane.comp.lang.haskell.cafe/86897
9. http://article.gmane.org/gmane.comp.lang.haskell.general/18542
10. http://article.gmane.org/gmane.comp.lang.haskell.cafe/86922
11. http://article.gmane.org/gmane.comp.version-control.darcs.user/25916
12. http://article.gmane.org/gmane.comp.lang.haskell.general/18535
13. http://article.gmane.org/gmane.comp.lang.haskell.cafe/86937
14. http://article.gmane.org/gmane.comp.lang.haskell.cafe/86882
15. http://article.gmane.org/gmane.comp.lang.haskell.general/18540
16. http://article.gmane.org/gmane.comp.lang.haskell.cafe/86975
17. http://www.reddit.com/r/haskell/comments/fwk78/announce_ghc_version_702/
18. http://www.haskell.org/pipermail/haskell/2011-March/022610.html
19. http://www.reddit.com/r/haskell/comments/fvabx/greenfield_haskell/
20. file://localhost/r/haskell/comments/fvabx/greenfield_haskell/
21. http://www.reddit.com/r/haskell/comments/fxjcl/patches_for_monad_comprehensions_are_in_and_will/
22. http://hackage.haskell.org/trac/ghc/ticket/4370#comment:48
23. http://www.reddit.com/r/haskell/comments/fwkdh/ghc_702_released/
24. http://www.haskell.org/ghc/download_ghc_7_0_2
25. http://www.reddit.com/r/haskell/comments/ful84/haskell_on_android/
26. http://www.reddit.com/r/haskell/comments/ful84/haskell_on_android/
27. http://www.reddit.com/r/haskell/comments/ftxc7/do_you_think_haskell_will_ever_catch_on/
28. http://www.reddit.com/r/haskell/comments/ftxc7/do_you_think_haskell_will_ever_catch_on/
29. http://www.reddit.com/r/haskell/comments/fusve/hakyll_30_released_static_site_generator/
30. http://jaspervdj.be/hakyll/tutorial.html
31. http://www.reddit.com/r/haskell/comments/fx47b/new_release_of_cabaldev_sandboxed_reproducible/
32. http://www.haskell.org/pipermail/haskell-cafe/2011-March/089831.html
33. http://www.reddit.com/r/haskell/comments/fw311/news_on_welltyped_the_parallel_ghc_project_and/
34. http://www.well-typed.com/blog/51
35. http://www.reddit.com/r/haskell/comments/ftxzx/build_yourself_a_bluetooth_controlled_sixlegged/
36. http://blog.sigfpe.com/2011/02/build-yourself-bluetooth-controlled-six.html
37. http://stackoverflow.com/questions/5193876/goto-in-haskell-can-anyone-explain-this-seemingly-insane-effect-of-continuation/5203603#5203603
38. http://stackoverflow.com/questions/5132350/how-do-haskell-compilers-decide-whether-to-allocate-on-the-heap-or-the-stack/5132862#5132862
39. http://stackoverflow.com/questions/5200462/quick-question-about-arrow-operators/5200788#5200788
40. http://stackoverflow.com/questions/5134259/quickcheck-defining-arbitrary-instance-in-terms-of-other-arbitraries/5134632#5134632
41. http://stackoverflow.com/questions/5151858/running-a-haskell-program-on-the-android-os
42. http://stackoverflow.com/questions/5193876/goto-in-haskell-can-anyone-explain-this-seemingly-insane-effect-of-continuation
43. http://stackoverflow.com/questions/5179821/proving-equality-of-streams
44. http://stackoverflow.com/questions/5188212/rotate-the-first-argument-to-a-function-to-become-nth
45. http://stackoverflow.com/questions/5132350/how-do-haskell-compilers-decide-whether-to-allocate-on-the-heap-or-the-stack
More information about the Haskell
mailing list