Issue 156
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
-
GHC 8.6.5 released by Ben Gamari
The GHC team is proud to announce the release of GHC 8.6.5. This release fixes a handful of issues with 8.6.4.
-
Continuous improvement with hlint code smells by Ben Weitzman
hlint is an amazing tool for catching all sorts of little Haskell code improvements, but it didn’t catch all of the issues I wanted it to. So I decided to extend hlint with the ability to detect certain code smells.
-
Demystifying folds with ghci by Ayman Nadeem
Implementing folds can be tricky, brain-bending conquests in Haskell. This becomes all the more challenging in domains where associativity and strictness properties are less straightforward, such as when writing Template Haskell.
-
Rewriting functions with fold and reduce by Max Strübing
How to use fold and reduce to rewrite any function that operates on lists.
-
Backwards Compatible Configuration with Constraint Kinds by Travis Whitaker
A changing schema presents challenges at large scales in the form of database migrations or ETL, and anyone who has worked in data science has an idea of how much time this can consume.
-
Exploring Nix & Haskell Part 3: Less Nix, More Reflex by Christian Henry
In this post we’ll start with a project based off reflex-project-skeleton and remove/add bits and pieces to it until we have a deployable application with a prescribed IDE experience and workflow.
-
Haskell Integer to English by Ben Wiener
Inspired by a programming interview question I heard about, here’s some cute code I wrote for converting (positive) integers to words.
-
Type-Enforced Exponential Trees by Mitchell Vitez
We’re going to attempt to make it impossible for anyone to construct an invalid tree with the tree type we come up with.
-
Stackage changes and Stack 2 by Michael Snoyman
We’re ramping up for the Stack 2 release, which contains a number of changes.
-
Recently something caught my eye while hacking on a Haskell project. Pay attention to the
mempty
in the code fragment below: …either mempty pure
…
Jobs
-
Galois is hiring for a variety of roles (ad)
Including but not limited to: Software Engineers/Researchers, Project Managers, Hardware Engineers, Red Team Lead, Software Integration Engineer.
We collaborate with organizations like NASA, DARPA, and AWS to explore blue sky ideas and turn them into usable technology. Some of the things we’ve worked on in the past: Formal methods, static analysis, cryptographic algorithms, abstract interpretation, type theory, formal verification, reinforcement learning, autonomous systems assurance, communication security, cyber-deception for network defense, DDoS defense, provable hardware security, and statistical anomaly detection for detecting advanced persistent threats. We think working here is awesome; see lifeatgalois.com.
In brief
- Applicative monoids
- cabal-cache: Tool for caching packages
- Competitive Programming in Haskell: Basic Setup
- Serializing Mazes!
- Zero Bullshit Haskell
Package of the week
This week’s package of the week is ptGHCi, an interactive command shell for Haskell designed for high-productivity interactive coding. It is implemented as a wrapper around GHCi based on Python’s prompt-toolkit
library and heavily inspired by IPython.
Call for participation
Events
North America
- 2019-04-25 in Raleigh, NC, USA by Raleigh Haskell Meetup: (hack . yack)
- 2019-04-25 in Chicago, IL, USA by The Project Euler Sprint: Project Euler Sprint
- 2019-04-26 in Austin, TX, USA by Austin Types, Theorems, and Programming Languages: Going through Software Foundations by Benjamin Pierce et al
- 2019-04-27 in Berkeley, CA by Code Self Study: Open Programming Session (Saturday Afternoon)
- 2019-04-27 in Boston, MA, USA by Weekly Functional Programming Meetup: Hang out + short talk (topic not yet announced)
- 2019-04-29 in Irvine, CA by Orange Combinator - Functional Programming In OC: Combinating - The Weekly Function
- 2019-04-30 in Tulsa, OK, USA by Tulsa Lambda Lunch: An Introduction to Categories with Haskell and Databases (OKCFP)
- 2019-04-30 in Brooklyn, NY, USA by New York Haskell Users Group: Parallel and Concurrent Haskell Reading Group
- 2019-04-30 in Oklahoma City, OK, USA by OKC Functional Programming: An Introduction to Categories with Haskell and Databases
- 2019-04-30 in New York, NY, USA by N-Languages: Author Series: The Well-Grounded Rubyist by Joe Leo
- 2019-05-01 in Berkeley, CA by Code Self Study: Open Programming Session (Wednesday, Berkeley)
- 2019-05-01 in Austin, TX, USA by Austin Haskell Users Group: Haskell Beginner-Friendly Lab
- 2019-05-01 in Bellevue, WA, USA by SeaLang: Seven More Languages in Seven Weeks!!
- 2019-05-01 in Washington, DC, USA by The Joy of Programming Meetup: The Joy of Prototyping in F#
- 2019-05-02 in Las Vegas, NV, USA by Las Vegas Functional Programming User Group: Functional Programming Meetup
Europe
- 2019-04-25 in Karlsruhe, Germany by The Karlsruhe Functional Programmers Meetup Group: Stammtisch (gemeinsam mit der C++ UG KA)
- 2019-04-25 in Zürich, Switzerland by HaskellerZ: Jasper Van der Jeugt - Implementing In-memory Caches in Haskell
- 2019-04-25 in Copenhagen, Denmark by Mødegruppe for F#unktionelle Københavnere: [Simon Marlow]: Haskell in the Datacentre
- 2019-04-26 in København, Denmark by Mødegruppe for F#unktionelle Københavnere: [Coplas Talk] Selective Applicative Functors (Simon Marlow)
- 2019-04-29 in Karlsruhe, Germany by Karlsruhe Haskell Meetup: Parallel and Concurrent Programming Study Group
- 2019-04-29 in Delft, Netherlands by Delft Haskell Study Group: Haskell Study Session #9
- 2019-04-29 in London EC2, United Kingdom by Skills Matter - X Matters Keynote Series - Developer Events: Keynote by Adriaan Moors: Scala 2.13 and Beyond!
- 2019-04-30 in Bristol, United Kingdom by CodeHub Bristol: Hack Night
- 2019-05-01 in London, United Kingdom by Skills Matter - X Matters Keynote Series - Developer Events: Skills Matter - BeyondTech 2019
- 2019-05-02 in Graz, Austria by Functional Programming Graz: Functional Programming Meetup
- 2019-05-02 in Karlstad, Sweden by Software Developers Karlstad: Functional Programming in Haskell
- 2019-05-02 in Rennes, France by Meetup Lambda Rennes - Programmation fonctionnelle: Programmation fonctionnelle facile avec Elm
- 2019-05-02 in Düsseldorf, Germany by Clojure Düsseldorf: Teaching Games How To Solve Themselves (with Robert Avram)
Asia
- 2019-04-27 in Delhi, India by DelhiNCR Haskell And Functional Programming Languages Group: FPNCR Unscripted Online meetup
- 2019-05-02 in Gurugram, India by DelhiNCR Haskell And Functional Programming Languages Group: FPNCR Monthly meetup
Oceania
- 2019-05-01 in Newcastle, Australia by Newcastle Coders Group: May: Introduction to FP & Haskell: Alex Smith; Post Incident Review: Klee Thomas
South America
- 2019-05-02 in Santiago, Chile by Santiago Scala Meetup: Santiago Scala Meetup