Issue 70
Welcome to another issue of Haskell Weekly! Haskell is a purely functional programming language that focuses on correctness, productivity, and expressiveness. This is a weekly summary of what’s going on in its community.
Want to see something featured in Haskell Weekly? We love contributions! Tweet us at @HaskellWeekly or open a pull request.
Featured
-
Cross-referenced codebase for Stackage LTS 9.2 available
To find out who else uses your favorite functions and how. For example, click
async
to get all the call sites of that method. -
Compact normal forms + linear types = efficient network communication
In this post, I want to use the same idea of tracking states in types, but applied to a more unusual example from our paper: sending rich structured data types across the network and back with as little copying as possible.
-
Roll your own Bitcoin exchange in Haskell
This article will show you how to: Design an order book that can handle limit orders and market orders; Install automated sanity checks that run on every write to the order book, preventing hacks and implementation bugs.
-
The problem is about finding out in how many ways you can make change for a certain amount of money using an infinite supply of coins of different values.
-
Beginner mistakes and oddities I encountered
Time sure does fly don’t it? I’m going to go over a lot of the beginner mistakes and little pitfalls and paper cuts I’ve encountered so far while working on the GHC test suite.
-
Introducing Haskey (Summer of Haskell 2017)
This blog post introduces the Haskey project, an ACID compliant embedded key-value store entirely written in Haskell, based on an MVCC B+-tree implementation.
-
Migrating a REST API from JavaScript to Haskell
I noticed that running the server was costing me more than I’d like. This was because the REST API consumed too much memory, which cost me a bit too much money. So, to save money, I decided to rewrite the API in Haskell.
-
To understand what’s happening, let’s look at a simplified version of the implementation of the
exitWith
function. I would have anticipated that this would, you know, actually exit the process. -
Fixed-length vector types in Haskell
So here we are in 2017. GHC 8.2 is here, and base is in version 4.10. What’s the “right” way to do fixed-length vectors in Haskell?
-
Type Tac Toe: Advanced type safety
Today we’ll be looking at type programming in Haskell. Programming in type-land allows us to teach the compiler a few new tricks and to verify additional constraints at compile-time rather than run-time.
Jobs
Sadly we aren’t currently aware of any Haskell job openings. Are you looking to hire a Haskell developer? If so, consider advertising with us!
In brief
- A ByteString performance mystery
- Closure conversion as coyoneda
- Haskell for Mac: The highlights of version 1.5
- Haskell Platform 8.2.1
- Monad transformer commutativity
- Nanocoin
- Putting the flow in Tensor Flow
- Right and left folds, primitive recursion patterns in Python and Haskell
- Stackage to Nix
Package of the week
This week’s package of the week is stm, a library that provides software transactional memory. STM is a modular, composable concurrency abstraction.
Call for participation
- aeson: Documentation of Option fields disappeared
- liquidhaskell: Annotations are ignored when comment is not closed with @-}
- nanocoin: Reward Transaction on Mining
- stack:
stack script --optimize
clutters the current directory with *.hi and *.o files - stack: Allow installing from GitHub
Events
- September 3 - September 9: Oxford, United Kingdom: International Conference on Functional Programming
- September 6: Berlin Haskell Programming From First Principles Study Group