Newsletter
Issue 70 2017-08-31
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 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
asyncto 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
exitWithfunction. 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 --optimizeclutters 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