[Haskell-cafe] Haskell Weekly News: Issue 170
Daniel Santa Cruz
dstcruz at gmail.com
Thu Feb 24 06:29:33 CET 2011
Welcome to issue 170 of the HWN, a newsletter covering developments in
the [1]Haskell community. This release covers the week of February 13 -
19, 2011.
Announcements
Simon Michael [2]informed us of reviving of FunGEn as a community
project. "FunGEn (Functional Game Engine) is a platform-independent,
BSD-licensed, easy-to-install 2D game engine currently based on OpenGL
and GLUT."
Alexander McPhail [3]announced the release of vector-buffer. "It
provides a buffer that can be turned into a Data.Vector.Storable. The
mapM* functions map from the oldest element, not the first."
Mark P. Jones [4]announce the availability of 2 openings for
post-doctoral researches "to help design, develop, and apply a new
strongly typed, pure functional language for systems programming."
Trystan Spangler [5]made a second release of his Behavior Driven
Development for Haskell, and the tool can now be found in Hackage!
Jeremy Shaw [6]announce the release of Happstack 6. "We fully recomend
that all Happstack users migrate to the new release."
Gregory D. Weber [7]published a new release of Sifflet and sifflet-lib.
"Sifflet is a visual, functional programming language and support
system for students learning about recursion."
Johan Tibell [8]announced the release of two new packages:
unordered-containers (Efficient hashing-based container types), and
hashable (Efficient hashing of common types).
Quotes of the Week
* kmc: i started to read the "tutorial" and it was incomprehensible.
makes the Gentle Introduction to Haskell look like Teach Yourself
PHP in 24 Hours
* ConorMcBride: Sometimes it's easier to search for good programs in
the space of well typed programs, rather than in the space of ascii
turds.
* monochrom: best practice haskell is "go with your heart"
* accel: one day, it was raining -- I was walking home -- I saw Knuth
biking home, wearing a helmet, in the rain -- and I freaked out --
rain was hitting him like any other mortal ... it wasn't bounching
off his aura of awesomeness
Top Reddit Stories
* Type level natural numbers ... ready to merge into GHC mainline:
From (hackage.haskell.org), scored 62 with 44 comments. Read on
[9]reddit or the [10]original post.
* Haskell Web Framework Happstack 6 Released: From
(groups.google.com), scored 45 with 3 comments. Read on [11]reddit
or the [12]original post.
* Well-Typed is hiring: From (well-typed.com), scored 41 with 13
comments. Read on [13]reddit or the [14]original post.
* Haskell is Better: slides from Mark Lentczner's talk at Ignite
Silicon Valley: From (scribd.com), scored 40 with 43 comments. Read
on [15]reddit or the [16]original post.
* New, faster hashing-based containers library released: From
(blog.johantibell.com), scored 40 with 6 comments. Read on
[17]reddit or the [18]original post.
* Disciple haskell dialect : strict evaluation as default ,
destructive update of data structures.: From
(disciple.ouroborus.net), scored 35 with 25 comments. Read on
[19]reddit or the [20]original post.
* Yesod: Warp Speed Ahead: From (docs.yesodweb.com), scored 34 with 8
comments. Read on [21]reddit or the [22]original post.
* Faster persistent data structures through hashing: From
(blog.johantibell.com), scored 28 with 15 comments. Read on
[23]reddit or the [24]original post.
* Developing iPhone applications in Haskell â a tutorial: From
(gergo.erdi.hu), scored 25 with 6 comments. Read on [25]reddit or
the [26]original post.
* An Introduction to Agda :: PDF: From (dl.dropbox.com), scored 24
with 4 comments. Read on [27]reddit or the [28]original post.
Top StackOverflow Answers
* [29]How to tell whether Haskell will cache a result or recompute
it? votes: 17
primes, in your code, is not a function, but a constant, in
haskellspeak known as a CAF. If it would take a parameter
(say, ()), you would get two different versions of the same
list back if calling it twice, but as it is a CAF, you get the
exact same list back both times;
As a top-level definition, primes never gets out of scope,
thus the head of the list ...
* [30]Specific type inference using uncurry function votes: 17
This has nothing to do with ghci. This is the monomorphism
restriction being irritating. If you try to compile the following file:
add = uncurry (+)
main = do
print $ add (1,2 :: Int)
print $ add (1,2 :: Double)
You will get an error. If you expand:
main = do
print $ uncurry (+) (1,2 :: Int)
print $ uncurry (+) (1,2 :: Double)
...
* [31]Haskell: Unexpected output for expression [0, 0.1 .. 1]
votes: 15
This is a result of the imprecision of floating point values,
it isn't particular to Haskell. If you can't deal with the
approximation inherent in floating point then you can use
Rational at a high performance cost:
> import Data.Ratio
Data.Ratio> [0,1%10.. 1%1]
[0 % 1,1 % 10,1 % 5,3 % 10,2 % 5,1 % 2,3 % 5,7 % 10,4 % 5,9 % 10,1 % 1]
Just to hammer ...
* [32]valid haskell function names votes: 14
From the Haskell report:
Haskell uses the Unicode character set. However, source programs are
currently biased toward the ASCII character set used in earlier
versions of Haskell. Recent versions of GHC seem to be fine with
unicode (at least in the form of UTF-8):...
* [33]Haskell range notation to generate list. Unexpected output
votes: 13
The notation is meant to mimic the usual way to write simple
sequences mathematics. The second element is not the step, but
in fact the actual second element of the list. The rest is
linearly extrapolated from there. Examples:
[1,2..10] = [1,2,3,4,5,6,7,8,9,10]
[1,3..10] = [1,3,5,7,9]
[4,3..0] = [4,3,2,1,0]
[0,5..] = [0,5,10,15,20,25,30,35...
Top StackOverflow Questions
* How to tell whether Haskell will cache a result or recompute it?
(votes: 11, answers: 1) [34]read
* How can one distribute Haskell programs to non-technical end users?
(votes: 8, answers: 2) [35]read
* Haskell range notation to generate list. Unexpected output (votes:
8, answers: 2) [36]read
* Appropriate uses of Monad `fail` vs. MonadPlus `mzero` (votes: 8,
answers: 2) [37]read
* Why does Haskell not have an I Monad (for input only, unlike the IO
monad)? (votes: 8, answers: 3) [38]read
About the Haskell Weekly News
To help create new editions of this newsletter, please send stories to
dstcruz at gmail.com.
Until next time,
Daniel Santa Cruz
References
1. http://haskell.org/
2. http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/86330
3. http://permalink.gmane.org/gmane.comp.lang.haskell.cafe/86371
4. http://www.haskell.org/pipermail/haskell/2011-February/022585.html
5. http://permalink.gmane.org/gmane.comp.lang.haskell.general/18510
6. http://www.mail-archive.com/haskell-cafe@haskell.org/msg87352.html
7. http://www.mail-archive.com/haskell@haskell.org/msg23319.html
8. http://article.gmane.org/gmane.comp.lang.haskell.general/18515
9. http://www.reddit.com/r/haskell/comments/fnc80/type_level_natural_numbers_ready_to_merge_into/
10. http://hackage.haskell.org/trac/ghc/ticket/4385
11. http://www.reddit.com/r/haskell/comments/fnit9/haskell_web_framework_happstack_6_released/
12. http://groups.google.com/group/happs/browse_thread/thread/f72d7ff313ea9fa0
13. http://www.reddit.com/r/haskell/comments/flyyg/welltyped_is_hiring/
14. http://www.well-typed.com/blog/50
15. http://www.reddit.com/r/haskell/comments/flajs/haskell_is_better_slides_from_mark_lentczners/
16. http://www.scribd.com/doc/48773692/Ignite-SV-Haskell-is-Better
17. http://www.reddit.com/r/haskell/comments/fo9gm/new_faster_hashingbased_containers_library/
18. http://blog.johantibell.com/2011/02/new-faster-containers-library.html
19. http://www.reddit.com/r/haskell/comments/fojb4/disciple_haskell_dialect_strict_evaluation_as/
20. http://disciple.ouroborus.net/
21. http://www.reddit.com/r/haskell/comments/flp87/yesod_warp_speed_ahead/
22. http://docs.yesodweb.com/blog/warp-speed-ahead
23. http://www.reddit.com/r/haskell/comments/fm6gg/faster_persistent_data_structures_through_hashing/
24. http://blog.johantibell.com/2011/02/slides-from-my-hashing-based-containers.html
25. http://www.reddit.com/r/haskell/comments/fkqe1/developing_iphone_applications_in_haskell_a/
26. http://gergo.erdi.hu/blog/2011-02-13-developing_iphone_applications_in_haskell___a_tutorial/
27. http://www.reddit.com/r/haskell/comments/fl0wr/an_introduction_to_agda_pdf/
28. http://dl.dropbox.com/u/361503/Agda%20and%20dependent%20types.pdf
29. http://stackoverflow.com/questions/5032750/how-to-tell-whether-haskell-will-cache-a-result-or-recompute-it/5032920#5032920
30. http://stackoverflow.com/questions/4999020/specific-type-inference-using-uncurry-function/4999860#4999860
31. http://stackoverflow.com/questions/5048920/haskell-unexpected-output-for-expression-0-0-1-1/5048970#5048970
32. http://stackoverflow.com/questions/5023485/valid-haskell-function-names/5023519#5023519
33. http://stackoverflow.com/questions/5012185/haskell-range-notation-to-generate-list-unexpected-output/5012276#5012276
34. http://stackoverflow.com/questions/5032750/how-to-tell-whether-haskell-will-cache-a-result-or-recompute-it
35. http://stackoverflow.com/questions/5004902/how-can-one-distribute-haskell-programs-to-non-technical-end-users
36. http://stackoverflow.com/questions/5012185/haskell-range-notation-to-generate-list-unexpected-output
37. http://stackoverflow.com/questions/5023969/appropriate-uses-of-monad-fail-vs-monadplus-mzero
38. http://stackoverflow.com/questions/5032475/why-does-haskell-not-have-an-i-monad-for-input-only-unlike-the-io-monad
More information about the Haskell-Cafe
mailing list