Issue 150
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
-
How we made Haskell search strings as fast as Rust by Ruud van Asseldonk
In this post, we will describe our quest to create Alfred-Margaret, the fastest Haskell implementation of the Aho-Corasick string searching algorithm, which powers string search in Channable.
-
An example of state-based testing in Haskell by Mark Seemann
This article is an instalment in an article series about how to move from interaction-based testing to state-based testing.
-
Bank kata in Haskell - using and testing date by Liam Griffin-Jowett
Our final task to complete the kata is to add a date to the transactions. We will implement this in small logical steps, using the compiler and the tests to drive our design.
-
Ceci n’est pas un default by Guillaume Allais
Being the default value is not the same as being actively set to a value which happens to match the default.
Maybe
as a type constructor enriching an existing type with a default value is not satisfactory: what this default value means is not documented in the type. -
Code smell: Boolean blindness by Thomas Tuegel
The popular term “boolean blindness” refers to the information lost by functions that operate on Bool when richer structures are available. Erasing such structure can give code a bad smell.
-
Deriving not-so-complex types by Arvind Devarajan
Often times, I get to read Haskell code with these patterns:
(fmap . fmap)
,fmap (<*>)
, etc. I’ve just taken three of these types, and break these into their intuitions here in the hopes that somebody out there can understand when to use these. -
Enhancing File Durability in Your Programs by Roman Gonzalez
An unexpected shutdown (like a kernel panic, or unplugging the power cord) in a machine should not affect the durability of confirmed writes in programs we develop.
-
Freer, yet Too Costly Higher-order Effects by Sandy Maguire
As of today I have free, higher-order effects working. Unfortunately, they are not fast. I don’t think this is a fundamental limitation, merely that whatever code I’ve written isn’t amenable to GHC’s optimization process.
-
Modifying a Library! by Monday Morning Haskell
We can see how to incorporate the change without stressing about its complexity. Even if you’re only a beginner, this is a good skill to learn now!
-
Types versus Tests: two approaches for writing correct software by Javier Casas
We try our best to have software without bugs. It’s just a hard problem, and no silver bullet to slay this beast. All we have are several approaches at trying to kick the bugs out of the software.
Jobs
- Haskell Team Lead at Zoomin in Tel Aviv
- Haskell Developer at Relex in Helsinki
- Functional Programmer at Chordify in Utrecht
- Engineer at Groq in Menlo Park
- Cryptocurrency Software Engineer at Pyrofex in Utah
- Tweag Internship Programme 2019
- SRE Intern at Formation in San Francisco
In brief
- Aelve Guide: Popular blogs
- ANN: topograph
- Dhall Discourse
- Radicle: A peer-to-peer stack for code collaboration
- Recording of My Talk at Lambda Days 2019
- Taskell, Cmt, and Brök
- Trigger: small utility to restart your app on recompile
- Type Classes: Coercion and datatype contexts
- TypeScript vs PureScript: Not all compilers are created equal
- What is the utility of row polymorphism?
Package of the week
This week’s package of the week is SBV (SMT Based Verification), a library that allows you to express properties about Haskell programs and automatically prove them using SMT (Satisfiability Modulo Theories) solvers.
Call for participation
- fused-effects: Carriers should INLINE their Applicative/Monad/etc. instances
- spago:
spago run
command
Events
North America
- 2019-03-14 in Raleigh, NC, USA by Raleigh Haskell Meetup: (hack . yack)
- 2019-03-14 in Bellevue, WA, USA by Fun(c)tional Programming Group: Oli Makhasoeva - Develop micro-services with Mu
- 2019-03-16 in Boston, MA, USA by Weekly Functional Programming Meetup: Hang out + short talk (WebGL in Elm by Ashish Chandwani)
- 2019-03-16 in Bellevue, WA, USA by Seattle Area Haskell Users’ Group: General discussion
- 2019-03-18 in Irvine, CA by Orange Combinator - Functional Programming In OC: Combinating - The Weekly Function
- 2019-03-18 in Portland, OR, USA by Portland Functional Programming Study Group: PDX Func Practice Track - Parallel and Concurrent Programming in Haskell
- 2019-03-18 in Lehi, UT, USA by Utah Haskell: Utah Haskell Meetup | Book Club
- 2019-03-19 in Minneapolis, USA by HaskellMN: HaskellMN Monthly Meetup
- 2019-03-19 in Brooklyn, NY, USA by New York Haskell Users Group: Parallel and Concurrent Haskell Reading Group
- 2019-03-19 in Atlanta, GA, USA by Atlanta Functional Programming Meetup: Introduction to Haskell
- 2019-03-20 in St. Louis, MO, USA by Haskell Users Group: St. Louis: Haskell Setup Workshop
- 2019-03-20 in Seattle, WA, USA by Beerly Functional: Think Functionally
- 2019-03-20 in Houston, TX, USA by Houston Functional Programmers: Building Single Page Applications with ClojureScript and react.js
- 2019-03-21 in Las Vegas, NV, USA by Las Vegas Functional Programming User Group: Functional Programming Meetup
Europe
- 2019-03-14 in London, United Kingdom by Hoodlums: Hoodlums Meetup
- 2019-03-16 in Berlin, Germany by Study Haskell: Weekly Haskell-studying session
- 2019-03-18 in Karlsruhe, Germany by Karlsruhe Haskell Meetup: Parallel and Concurrent Programming Study Group
- 2019-03-18 in Iași, Romania by Iasi Haskell: Haskell - Introducere si concepte de baza
- 2019-03-18 in London EC2, United Kingdom by Skills Matter - X Matters Keynote Series - Developer Events: Data Matters with Hollie Lubbock!
- 2019-03-19 in London EC2, United Kingdom by Skills Matter - X Matters Keynote Series - Developer Events: Leadership Matters with Douglas Squirrel and Jeffrey Fredrick!
- 2019-03-20 in Berlin, Germany by Berlin Haskell Users Group: Haskell Wednesday
- 2019-03-20 in Budapest, Hungary by Budapest Haskell User Group: Haskell Book reading group (27th Ed.)
- 2019-03-20 in London, United Kingdom by Skills Matter - X Matters Keynote Series - Developer Events: Ops Matters with Justin Davies!
- 2019-03-20 in Prague, Czech Republic by Prague Lambda Meetup: Quantum Lambda
- 2019-03-21 in London, United Kingdom by Skills Matter - X Matters Keynote Series - Developer Events: Skills Matter - iOSCon 2019
- 2019-09-21 in London: LambdaAle 2019
Oceania
- 2019-03-18 in Perth, Australia by Perth Functional Programmers: Haskell meetup
- 2019-03-20 in Auckland, New Zealand by Functional Programming Auckland: 2 Talks: Introduction to Hakyll & Making Sense of Applicative Do
- 2019-03-21 in Kota Jakarta Pusat, Indonesia by Lambda Indonesia: Sharing Ilmu Bersama Ariya Hidayat dan Tito Pandu
Asia
- 2019-03-15 in Noida, India by Reactive Application Programmers in Delhi NCR: MEETUP | Lifetime in Rust
- 2019-03-16 in Bengaluru, India by Bangalore Functional Programmers Meetup: Lets Lens - Part 2