Issue 84
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.
Featured
-
Stack, a cross-platform program for developing Haskell projects, released version 1.6.1.
-
Haskell has had a great year and 2017 was defined by vast quantities of new code, including 14,000 new Haskell projects on Github. The amount of writing this year was voluminous and my list of interesting work is eight times as large as last year.
-
I’m sure a number of readers have already seen something about the situation around Stack and Stackage Nightly/GHC 8.2. I tried to clarify how this happened on the relevant Github issue, plus the GHC Trac ticket, but thought I’d reshare as a blog post for others who are interested.
-
Pure functional validation in a nutshell
Why should you care about typed, functional programming? The data validation example sort of makes the point on its own: if you care about validating the data that users input into your forms, why shouldn’t you care just as much about the data that gets input into your functions?
-
This week marks the one year anniversary of Monday Morning Haskell! I’ve written an awful lot in the past year.
-
Making two garbage collectors be good neighbors (using linear types)
When two garbaged-collected languages share references to the same values, each garbage collector (GC) needs to be careful to not collect these values while the other language has references to them.
-
MOBA item optimization in Haskell
I love MOBAs, and I love Haskell. Since Paragon is my current go-to game, I wanted to determine the cards to buy to maximize my damage per second.
-
Req 1.0.0, HTTP client, and streaming
This post is about changes in
req-1.0.0
, some details of howhttp-client
works, in particular how it streams response bodies. Even if you do not want to usereq
for some reason, I hope the post still may be interesting. -
Several days of struggle didn’t yield much for capturing the video stream from a webcam. A few proof of concept libraries, not updated in years, are no match for the Python ones, which proves again that what matters is not really how “good” a programming language is, but its ecosystem!
-
Finding bugs in Haskell code by proving it
We have used
hs-to-coq
on various examples, as described in our CPP’18 paper, but it is high-time to use it for real.
Jobs
-
Confer Health seeking Software Engineer in Boston
We’re a small, world-class team combining Silicon Valley urgency with East Coast science. We just closed a large Series A led by one of Silicon Valley’s best investors and we’re looking to add a third person to our software team, so come work with us!
Are you looking to hire a Haskell developer? If so, advertise with us!
In brief
- Answering r/haskell: How to unit test code that uses polymorphic interfaces?
- Applicative functors and data validation
- Applicative functors in Haskell
- Book review: “Programming in Haskell” by Graham Hutton (2nd ed.)
- Constructing dependent vectors
- Debugging Church numerals in Haskell
- Introduction to golden testing
- Preprocessing
- Using Haskell on the frontend
- ZuriHac 2018: Registration now open
Package of the week
This week’s package of the week is Warp, a fast, light-weight web server for WAI applications.
Call for participation
- codeworld: Bookmarks in Guide
- duckling: Debugging tools for classifiers
- idris-vimscript: Choose optimisations to enable based on command-line arguments
- shakespeare: Many functions in shakespeare are undocumented
Events
- December 7: Raleigh Haskell Meetup: (hack . yack)
- December 11: Karlsruhe Haskell Lerngruppe: Typen und Typklassen: Kapitel 6
- December 12: FP AMS: Second category theory study group meetup
- December 13: Sydney Haskell User Group: Haskell Programming From First Principles Study Group
- December 14: Las Vegas Functional Programming User Group: Functional Programming Meetup