Welcome to Haskell Weekly! Haskell is an advanced, purely functional programming language. This is a weekly summary of what’s going on in its community. You can subscribe to the email newsletter or the Atom feed.
Want to contribute to Haskell Weekly? Send us a message on Twitter or open an issue on GitHub.
News from the Haskell community
The GHC team is happy to at last announce the 8.0.2 release of the Glasgow Haskell Compiler. This is the second release of the 8.0 series and fixes nearly two-hundred bugs. This release is the result of six months of effort by the GHC development community.
In this post we’re going to look at parsing XML in Haskell, how it compares with an efficient C parser, and steps you can take in Haskell to build a fast library from the ground up. We’re going to get fairly detailed and get our hands dirty.
Glance is a visual syntax for the programming language Haskell. The goal of this project is to increase programmer happiness and productivity by allowing programmers to create and understand programs in new and different ways. Currently, the Glance executable produces a visual representation of your code in the form of an SVG image when given a textual Haskell source file. In the future, I hope to create a visual editor for Haskell.
This blog post introduces graql-haskell, which is a library that lets you interface with the Grakn knowledge graph using Haskell. It is ideal for applications like data science — using Grakn as the database, Haskell for data processing and Graql as the intermediary between the two.
For the most part I look for something that should exist for some deep underlying mathematical reason that doesn’t yet exist in code in a reusable form and try to figure out how to bring it about.
GHC 8.0 introduced a new GHC extension named TypeApplications which allows us to give explicit type arguments to a polymorphic function.
These nested loops happen often in server-side programming. About a year ago, when I worked for Signal Vine, this happened to my code: the inner loop was a big streaming computation; the outer loop was something that would restart the inner loop should it fail. So why would such an innocent-looking piece of code consume unbounded amounts of memory? To find out, let’s trace the program execution on the STG level.
There is a group of people working on a proposal for adding linear types to Haskell. In this blog post I will attempt to put this proposal in some context. I will explain what linearity is and how it relates to its close cousin uniqueness typing, and I will compare the proposal to some other ways of doing things. My hope is that this will make the work more accessible.
Package of the week
This week’s package of the week is Bench, a more powerful alternative to the time command. It is a command-line tool to benchmark a command using Criterion.
Send us a message on Twitter to nominate next week’s package!