Issue 111
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.
Want to see something featured in Haskell Weekly? Open an issue or pull request on GitHub.
Featured
-
Accessing Postgres in a dataframe in Haskell
I have been accepted to Google Summer of Code 2018 as part of the Haskell.org open source organization. As part of this, I am trying to implement an add-on to the Frames library that would allow one to access Postgres from a dataframe in Haskell.
-
Codewars: An interactive online judge
An online judge is a website where there are programming challenge, you can try to send solution (as program) and they get automatically graded against some test.
-
Contributing to GHC 1: Preparation
Without GHC and the hard work that goes into it from many volunteers, Haskell would not be the language it is today. So in the next few weeks we’ll be explore the process of building and (hopefully) contributing to GHC.
-
GHC proposal: Remove the
*
kind syntaxAs we move towards DependentHaskell, it is increasingly painful to support this historical choice of name. We propose to slowly and carefully remove this syntactic oddity from the language.
-
A few questions for those of us that write REST APIs in Haskell.
-
I built a chess analytics web app in Haskell
I like chess, analytics, and Haskell, so I decided to combine all this into a single app. My aspiration for the app is to be able to produce a large number of interesting statistics and turn it into something like “538 for chess”.
-
Lenses embody products, prisms embody sums
This post won’t be a “lens tutorial”, but rather a dive into an perspective on lenses and prisms that I’ve heard repeated many times (and always credited to Edward Kmett) but never quite expanded on in-depth.
-
If you are new to Haskell-style languages, monads probably feel clunky. Sure, the bare bones example that a monad tutorial will show you is clean enough, but as soon as you try to do anything more complex, you can easily end up in a morass of type errors.
-
Source plugins: Four ways to build a type checked Haskell expression
In this post, I’ll demonstrate and explain four different ways of arriving at a type checked expression which can then be inserted into a program.
-
Turning bottom-up into top-down with reverse state
I love bound - it makes De Bruijn indices mindlessly easy. I also love Plated for all sorts of whole-program transformations. I think they’re two indispensable tools for working with programming languages. Unfortunately, they’re not compatible.
Jobs
-
Software engineer at ITProTV in Gainesville, Florida
ITPro.TV is a fast-growing digital media business that focuses on continuing education in technical domains. We are currently accepting applications for full-stack software professionals to join our small but talented multidisciplinary team.
In brief
- A promise checked is a promise kept: Inspection Testing [pdf]
- Announce: Haskell Platform 8.4.3
- ASCII-Runner: An infinite runner in your terminal
- Between two sets: HaskellRank #05 [video]
- CoRecursive: Dependent types in Haskell with Stephanie Weirich [audio]
- Functional pearl: Ghosts of departed proofs [pdf]
- Gamgee: Your sidekick for managing multi-factor authentication tokens
- Hackathon review and Stack maintenance
- Monadic.Party 2018 [video]
- servant-dhall: Accept and return Dhall expressions
- Suggesting valid hole fits for typed holes [pdf]
- Type variables in patterns [pdf]
- ZuriHac 2018 beginner track Friday [video]
Package of the week
This week’s package of the week is Summoner, a tool for creating completely configured production Haskell projects.
Call for participation
- arithmoi: Ramanujan tau-function
- boke-hs: Use Data.Colour as Colour representation
- dejafu: The unit testing docs refer to the (nonexistent) *IO functions
Events
- June 14: Fun(c)tional Programming Group: Free Monoidal Functors - Bartosz Milewski in Bellevue, Washington, United States
- June 16: Seattle Area Haskell Users’ Group: General discussion in Seattle, Washington, United States
- June 17: Tokyo Haskell Meetup: June 2018 in Tokyo, Japan
- June 18: Bay Area Haskell Users Group: Haskell Talks at Formation in San Francisco, California, United States
- June 19: Indy FP: Practical Functional Refactoring in Carmel, Indiana, United States
- June 20: Auckland FP Meetup: Learn Haskell Hands-on in Auckland, New Zealand
- June 21: San Diego Functional Programmers: June Meetup - Functional Text Parsing in San Diego, California, United States