Welcome to issue 163 of the HWN, a newsletter covering developments in the Haskell community. This release of the newsletter contains some summary data for the year 2010. Thanks to everyone involved for making this such a wonderful community!
Big cheers to Miran Lipovaa, who got multiple top Reddit stories this year for his work on Learn You a Haskell! Also kudos to Don Stewart, Norman Ramsey, camccann, sepp2k, and KennyTM for taking the time to answer so many questions in StackOverflow. The folks at #haskell never cease to amaze with their friendliness and their helpfulness as well.
What did Reddit and StackOverflow think was hot this year?
Top Reddit Stories this Year
- Galois releases the Haskell Lightweight Virtual Machine (HaLVM): From (galois.com), scored 103 with 26 comments. Read on reddit or the original post.
- Try Haskell!: From (self.haskell), scored 105 with 29 comments. Read on reddit or the original post.
- GHC 7.0.1 released!: From (haskell.org), scored 100 with 31 comments. Read on reddit or the original post.
- Learn You a Haskell: Zippers: From (learnyouahaskell.com), scored 93 with 44 comments. Read on reddit or the original post.
- The new LLVM backend to GHC is ready to merge in!: From (haskell.org), scored 89 with 27 comments. Read on reddit or the original post.
- Haskell vs. Erlang for bittorent clients: laziness, dynamic typing ..: From (jlouisramblings.blogspot.com), scored 88 with 8 comments. Read on reddit or the original post.
- There are more than 4000 people in the Haskell Reddit. Tell us what you're using Haskell for! Work and/or play? What would most help you get the job done?: From (self.haskell), scored 84 with 171 comments. Read on reddit or the original post.
- Smoking fast Haskell code using GHC's new LLVM codegen: From (donsbot.wordpress.com), scored 83 with 2 comments. Read on reddit or the original post.
- Learn You a Haskell for Great Good! The Book!: From (amazon.com), scored 79 with 29 comments. Read on reddit or the original post.
- LYAH: Intro to Monads: From (learnyouahaskell.com), scored 78 with 49 comments. Read on reddit or the original post.
Top StackOverflow Answers this Year
Large-scale design in Haskell? votes: 1
I talk a bit about this in Engineering Large Projects in Haskell and in the Design and Implementation of XMonad. Engineering in the large is about managing complexity. The primary code structuring mechanisms in Haskell for managing complexity are : The type system Use the type system to enforce abstractions, simplifying interactions. Enforce key ...
Curious about the HashTable problem votes: 1
The problem was that the garbage collector is required to traverse mutable arrays of pointers ("boxed arrays") looking for pointers to data that might be ready to deallocate. Boxed, mutable arrays are the main mechanism for implementing a hashtable, so that particular structure showed up the GC traversal issue. This is common to many languages. The symptom ...
Why are side-effects modeled as monads in
Haskell? votes: 1
Suppose a function has side effects. If we take all the effects it produce as the input and output parameters, then the function is pure to the outside world. So for an impure function f' :: Int -> Int we add the RealWorld to the consideration f :: Int -> RealWorld -> (Int, RealWorld) -- input some states of the whole world, -- modify the ...
Haskell - I am too old for
thisâ€¦ votes: 1
(f . g) x = f (g x) This is true. You concluded from that that (f . g) x y = f (g x y) must also be true, but that is not the case. In fact, the following is true: (f . g) x y = f (g x) y which is not the same. Why is this true? Well (f . g) x y is the same as ((f . g) x) y and since we know that (f . g) x = f (g x) we can reduce that to (f (g x)) ...
Haskell: How is <*> pronounced? votes: 1
Sorry, I don't really know my math, so I'm curious how to pronounce the functions in the Applicative typeclass Knowing your math, or not, is largely irrelevant here, I think. As you're probably aware, Haskell borrows a few bits of terminology from various fields of abstract math, most notably Category Theory, from whence we get functors and monads. The ...
Haskell Weird Kinds votes: 1
These are GHC-specific extensions of the Haskell kind system. The Haskell 98 report specifies only a simple kind system: ... type expressions are classified into different kinds, which take one of two possible forms: The symbol * represents the kind of all nullary type constructors. If k1 and k2 are kinds, then k1->k2 is the kind of types ...
Is Haskell really a purely functional language considering
unsafePerformIO? votes: 1
The Languages We Call Haskell unsafePerformIO is part of the Foreign Function Interface specification, not core Haskell 98 specification. It can be used to do local side effects that don't escape some scope, in order to expose a purely functional interface. That is, we use it to hide effects when the type checker can't do it for us (unlike the ST monad, ...
What language to learn after Haskell? votes: 1
I would like to broaden my knowledge of programming. (...) I thought I would pose the question here, along with several stipulations about the type of language I am looking for. Some are subjective, some are intended to ease the transition from Haskell. Strong type system. (...) It also makes informally reasoning about the correctness of my program ...
Why is writing a compiler in a functional language
easier? votes: 1
Often times a compiler works a lot with trees. The source code is parsed into a syntax tree. That tree might then be transformed into another tree with type annotations to perform type checking. Now you might convert that tree into a tree only containing core language elements (converting syntactic sugar-like notations into an unsugared form). Now you might ...
GHC's RTS options for garbage collection votes:
Generally speaking, garbage collection is a space/time tradeoff. Give the GC more space, and it will take less time. There are (many) other factors in play, cache in particular, but the space/time tradeoff is the most important one. The tradeoff works like this: the program allocates memory until it reaches some limit (decided by the GC's automatic tuning ...
About the Haskell Weekly News
At this point in time, the HWN has been a bit sporadic. I'm hoping that 2011 will see a much more regular schedule for this channel. I'd like to thank everyone who pitched in and sent stories/comments/quotes. If you have any ideas of how to improve this letter, please don't hesitate to contact me at firstname.lastname@example.org. The source code that I use to cullate this newsletter will be made available shortly in github.
Here is to wishing you a great 2011! Until next time,
Daniel Santa Cruz