Issue 115

Welcome to another issue of Haskell Weekly! Haskell is a safe, purely functional programming language with a fast, concurrent runtime. This is a weekly summary of what’s going on in its community.

Want to see something featured in Haskell Weekly? Open an issue or pull request on GitHub.

Featured

  • Thinkster’s RealWorld backend

    My first try implement Thinkster’s Conduit API can be found at RealWorldTM which I think should be fully functional. But, it doesn’t feel right if I don’t write it up. So, here we go again.

  • Announcing Stackage LTS 12.0 with GHC 8.4.3

    We are pleased to announce the release of lts-12.0, the first in a new LTS Haskell snapshot series, using ghc-8.4.3. We thank all of the package authors involved in supporting the Haskell ecosystem. LTS Haskell would not be possible without you!

  • Fast Sudoku solver in Haskell: A 200x faster solution

    In the first part of this series of posts, we wrote a simple Sudoku solver in Haskell which used a constraint satisfaction algorithm with backtracking. The solution worked well but was very slow. In this post, we are going to improve it and make it fast.

  • Operators in JavaScript and Haskell

    JavaScript has a handful of builtin infix operators and some convenient tricks you can do with them. Here we look at what you can do with those operators, and how you can do the same things in Haskell.

  • The curious time-traveling reverse state monad

    But cumulativeR seems harder to write. After all, we really want to start traversing from the right instead of the left. But Traversable allows no such thing. So how might we implement this generalized cumulativeR function?

  • Funflow example: Emulating Make

    Funflow is a workflow management tool. It turns out that workflow management tools and build tools are closely related. So if you’re more familiar with the latter, this post might be of interest to you.

  • Deriving instances with a twist

    When defining new data types, instance derivation can generate basic functionality for free. However, that mechanism cannot handle all types. For example, deriving Eq or Show assumes that all constructor fields are instances of Eq and Show.

  • typerep-map step by step

    I have been working on a very interesting and sophisticated project called typerep-map. A lot of advanced features and tricks were used during the development process and I have discovered many amusing and new sides of Haskell.

  • Parsing list comprehensions is hard

    I have a toy problem that I like to test on anyone who thinks they’ve “solved” parsing: Haskell list comprehensions. The problem is that when parsing a clause, until you see a <-, you don’t know whether you’ve been parsing a pattern or an expression.

  • Installing and running multiple GHC versions

    In my roles both as a library author and as a Hackage Trustee, I find myself needing to run builds against multiple versions of the Glasgow Haskell Compiler on a daily basis. I thought it would be worth putting together a post on how I manage my installations of GHC.

Jobs

  • Software engineer at ITProTV in Gainesville, Florida

    ITPro.TV is a fast-growing digital media business that focuses on continuing education in technical domains. We are currently accepting applications for full-stack software professionals to join our small but talented multidisciplinary team.

In brief

Package of the week

This week’s package of the week is Pandoc, a Haskell library and command-line tool for converting from one markup format to another.

Call for participation

Events