Haskell Weekly

Newsletter

Issue 442 2024-10-17

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.

Featured

  • Developer Nation Survey (ad)

    Calling All Devs! Help shape the future of development by taking the Developer Nation survey. We’ll donate to charity on your behalf and you could win a Samsung Galaxy Watch 7, a Portable Projector, Raspberry Pi 5s, and many more.

  • A Dictionary of Single-Letter Variable Names by Jack Kelly

    Haskell’s expressive type system means that type signatures can carry a lot of information. Haskell’s polymorphism means that you sometime write a function that works across an enormous range of types, and are often left wondering “what do I actually call my variables?”. It is often the case that there’s nothing to say beyond “this variable is a Functor”, or “this variable is a monadic action”, and so a single-letter variable name is appropriate. An unofficial and largely undocumented convention has emerged around these variable names, and so I wanted to write them all down in one place.

  • Cheap guitars and drums in Haskell by Alp Mestanogullari

    This post demonstrates an extremely simple but foundational method in digital audio synthesis born in the US in the late 1970s, the Karplus-Strong algorithm.

  • Deploying a Single-Binary Haskell Web App by kqr

    Although Haskell is a compiled language and the default build step results in a single binary for a Yesod site, it is not a deployable single binary, because it may still depend on libraries and resources on the machine it was built. To get to a point where deployment consists only of copying over a binary and restarting a process, there were a few more steps needed beyond the default.

  • GHC 9.12.1-alpha1 is now available by Zubin Duggal

    The GHC developers are very pleased to announce the availability of the first alpha release of GHC 9.12.1. Binary distributions, source distributions, and documentation are available at downloads.haskell.org.

  • MonadRandom: major or minor version bump? by Brent Yorgey

    tl;dr: a fix to the MonadRandom package may cause fromListMay and related functions to extremely rarely output different results than they used to. This could only possibly affect anyone who is using fixed seed(s) to generate random values and is depending on the specific values being produced, e.g. a unit test where you use a specific seed and test that you get a specific result. Do you think this should be a major or minor version bump?

  • Serokell’s Work on GHC: Dependent Types, Part 4 by Vladislav Zavialov, Andrey Borzenkov

    The GHC team at Serokell continues its work towards dependent types in Haskell. Our ultimate goal is that Haskell becomes a language where the use of advanced type system features is not just possible but practical. In this report, Serokell’s GHC team members Vladislav Zavialov and Andrei Borzenkov describe their recent contributions.

  • The Haskell Unfolder Episode 34: you already understand monads by Andres Löh, Edsko de Vries

    Function composition is the idea that we can take two functions and create a new function, which applies the two functions one after the other. When viewed from the right angle, monads generalize this idea from functions to programs: construct new programs by running other programs one after the other. In this episode we make this simple idea precise. We will also see what the monad laws look like in this setting, and we will discuss an example of what goes wrong when the monad laws are broken.

  • Water Sort in Haskell by Nicolas Audinet de Pieuchon

    Water Sort is a puzzle game where you have to sort coloured water into bottles. If you haven’t tried it yet, there are many clones of it online or on your phone. I started playing the game a while ago and, after getting a little addicted to it, I decided to implement it in Haskell for fun (and to immunise myself against it).

Jobs

Trying to hire a Haskell developer? You should advertise with us!

In brief

Show & tell

Call for participation