Newsletter
Issue 115 2018-07-12
Subscribe now! We'll never send you spam. You can also follow our feed. Read more issues in the archives.
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
-
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, usingghc-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. ButTraversable
allows no such thing. So how might we implement this generalizedcumulativeR
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
orShow
assumes that all constructor fields are instances ofEq
andShow
. -
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
- Benchmarking Haskell graph libraries
- Gauging interest in a type-level programming book
- Idiom brackets via source plugin
- Inside the paper: Build systems a la carte
- Lamping’s abstract algorithm
- Nix, Docker, and Haskell
- Scrap your
Nil
s - Static analysis of free monads
- Video player improvements
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.