Note that there are some explanatory texts on larger screens.

plurals
  1. POWhat haskell topics need to be addressed in a Real-World-Haskell style?
    primarykey
    data
    text
    <p>It has been quite some time now that RWH came out (<strong>almost 3 years</strong>). I was eager to get my copy after following the incremental writing of the book online (which is, I think, one of the best ways to write a book.) What a rewarding read in the midst of all the rather academic papers a haskell student usually encounters! </p> <p>It was a sturdy companion on quite some trips and I refer back to it regularly. Still, my copy started to look <em>pretty battered</em> and even though most of the content is still valid, there has been an abundance of new topics in the haskell world that would be worth covering in a similar fashion.</p> <p><img src="https://i.stack.imgur.com/Ymnqf.jpg" alt="my battered copy of rwh"></p> <p>Considering the impact RWH had (and still has,) I sincerely hope that there will be a sequel some day :) Some of the topics for a sequel that would immediately come to my mind:</p> <ul> <li><strong>Iteratees</strong></li> <li>more on <strong>concurrent programming</strong> in haskell</li> <li>merits and dangers of <strong>lazy evaluation</strong> <ul> <li>possibly covering some common libraries that deal with this</li> <li>in particular lazy io</li> </ul></li> <li>new <strong>ghc features</strong> (e.g. the new I/O Manager, LLVM code generator)</li> <li><strong>Memoization</strong></li> <li>..</li> </ul> <p>What are the topics that the haskell community needs a RWH-style explanation for?</p> <hr> <p><em>this is a summary of the suggestions so far:</em></p> <p><strong>Concepts</strong></p> <ul> <li>Iteratees / lazy IO</li> <li>Arrows</li> <li>ghc event manager</li> </ul> <p><strong>Techniques</strong></p> <ul> <li>generics (uniplate, syb)</li> <li>metaprogramming (Template Haskell)</li> <li>data structures (use of functional datastructures, designing data structures)</li> <li>EDSLs (designing EDSLs)</li> <li>memoization</li> <li>designing with monads</li> <li>best practices for imperative programming</li> </ul> <p><strong>Tools</strong></p> <ul> <li>ThreadScope</li> <li>Advanced FFI tools (c2hs, using Haskell from C)</li> <li>cabal</li> <li>haddock</li> <li>hoogle</li> <li>Tuning the runtime, esp. GC flags</li> <li>Djinn</li> </ul> <p><strong>Libraries</strong></p> <ul> <li>arrays and array programming (vector, repa, hmatrix)</li> <li>numerics (random numbers)</li> <li>parallel programming (The Par monad)</li> <li>unicode and locales (text, text-icu)</li> <li>parsing (attoparsec, tagsoup)</li> <li>networking (snap, yesod)</li> <li>web stuff (templating)</li> <li>persistance (especially no-sql storage bindings)</li> <li>graphics (cairo, sdl, opengl)</li> <li>xml (haxml)</li> <li>crypto</li> <li>processors and systems stuff</li> </ul>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload