Issue 147
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
-
A pure function does no funny business by Joseph Abrahamson
Before we can talk about the tradeoffs of using pure functional style, we need to understand it. What does it mean for a function to be pure anyway?
-
stdio - A simple and high-performance IO toolkit for Haskell by Han Dong Zhu
Yesterday I and my friend Tao He write a short release message at a local cafe, we released a new IO library for GHC based on our previous work on combining libuv and GHC.
-
January Teardown: Bowling by Stephen Paul Weber
It’s time to announce the winner for January’s challenge and do some teardown! A lot of what makes this code bad is not being idiomatic for the language or problem, starting even with basic syntax choices.
-
Towards a better API for I/O by Tim Spence
In this post we’ll skip over some of the more complex implementation details and focus more on the core design of iteratees and the reasoning behind the types Oleg defines.
-
Freer Monads: Too Fast, Too Free by Sandy Maguire
So without further ado, I’d like to share my work-in-progress with you, tentatively named too-fast-too-free. This is ready for prime-time, but I’d prefer to merge it to someone upstream rather than pollute hackage with yet another free(r) monad extensible effects package.
-
Freer doesn’t come for free by Eric Torreborre
After being involved with 2 large applications (both in Scala and Haskell) using a “Freer monad” I would not recommend this anymore. Why is that?
-
Embedding Haskell in AsciiDoc by Jonathan Dowland
For various convoluted reasons I wanted to embed Haskell into an AsciiDoc-formatted document and I couldn’t use Bird-style literate Haskell, which would be my preference.
-
Haskell Style Guide by Kowainik
The purpose of this document is to help developers and people working on Haskell code-bases to have a smoother experience while dealing with code in different situations.
-
Shower by Monadfix
A tool for pretty-printing Haskell data types, even ones with broken
Show
instances (likeUTCTime
,UUID
, and various hash types). -
Quantifiers in Agda by Vladimir Ciobanu
This post will go a bit further than that and show the type theoretic equivalents of existential and universal quantifiers. I’ll then explore some interesting properties of these types.
Jobs
-
Software engineer at ITProTV in Gainesville
ITProTV is disrupting the eLearning world with engaging online training that people actually want to watch. We are currently accepting applications for full-stack software professionals to join our small but talented multidisciplinary team.
Taylor Fausak, the editor of Haskell Weekly, is the lead engineer at ITProTV.
-
Technical communicator at FP Complete
We hear the same from people trying to adopt DevOps and the other quality engineering techniques we advocate: people don’t know what’s available, whether it’s usable on their own projects, or how to get help. So I’m creating a new job at FP Complete for an articulate developer to focus on outreach and communication.
-
Haskell developer at Folq in Norway
We build a platform for matching consultants with customers without slow and expensive intermediates. We love statically typed functional programming, so our main technologies are Elm and Haskell. This enables us to move fast without breaking things.
-
GHC web backend developer at IOHK
We are looking for a talented Haskell compiler engineer to join our growing in-house team. In this full time, remote work opportunity the candidate will be responsible for designing, implementing, and maintaining existing and emerging backends for the Glasgow Haskell Compiler (GHC) targeting Web platforms, such as JavaScript and WebAssembly.
In brief
- A Brief Introduction to the λ-Calculus (Part 1)
- A three-stage program you definitely want to write
- A Touch of Topological Quantum Computation 3: Categorical Interlude
- Adding bit vectors - Branchless Comparisons
- Align, These, and HTTP headers
- Bank kata in Haskell - printing a statement
- Build Haskell stuff in your browser
- C◦mp◦se NYC 2019 CFP
- Haskell Symposium 2019 CFP
- Pirate Roguelike Dev Log #1
- Quadratic
deriving Generic
Compile Times - Shutting down haskell-lang.org
- Upgrading My Development Setup!
- Worstsort
Package of the week
This week’s package of the week is symbols
,
a library that provides utilities for manipulating type-level strings.
Call for participation
- LambdaHack: Un-hard-wire various constants, e.g., the healing speed when sleeping
- servant: Split ClientSpec
Events
North America
- 2019-02-20 in Austin, TX, USA by Austin Haskell Users Group: Haskell Beginner-Friendly Lab
- 2019-02-20 in Houston, TX, USA by Houston Functional Programmers: Office Hours
- 2019-02-21 in Las Vegas, NV, USA by Las Vegas Functional Programming User Group: Functional Programming Meetup
- 2019-02-21 in Raleigh, NC, USA by Raleigh Haskell Meetup: (hack . yack)
- 2019-02-21 in San Diego, CA, USA by San Diego Functional Programmers: February Meetup - Lambda Calculus
- 2019-02-22 in Austin, TX, USA by Austin Types, Theorems, and Programming Languages: Going through Software Foundations by Benjamin Pierce et al
- 2019-02-23 in Berkeley, CA by Code Self Study: Open Programming Session (Saturday Afternoon)
- 2019-02-23 in Boston, MA, USA by Weekly Functional Programming Meetup: Hang out + short talk (Dependently Typed Lists by Jinxuan Zhu)
- 2019-02-23 in San Diego, CA, USA by San Diego Software Development Deep Dive: Diving deeper into software development discussions
- 2019-02-25 in Irvine, CA by Orange Combinator - Functional Programming In OC: Combinating - The Weekly Function
- 2019-02-26 in San Francisco, CA, USA by Industrial and Applied Haskell: Applied Haskell talks at Formation
- 2019-02-27 in Portland, OR, USA by Portland Functional Programming Study Group: PDX Func Theory Track - Logic and Proof
Europe
- 2019-02-23 in Berlin, Germany by Study Haskell: Weekly Haskell-studying session
- 2019-02-25 in Delft, Netherlands by Delft Haskell Study Group: Haskell Study Session #1
- 2019-02-25 in Karlsruhe, Germany by Karlsruhe Haskell Meetup: Haskell Monday
- 2019-02-25 in Katowice, Poland by Let’s DAZN IT! - Lovefield DB/Scaling frontend applications: Let’s DAZN IT! -Lovefield DB/Scaling frontend applications with micro-frontends
- 2019-02-25 in London EC2, United Kingdom by Skills Matter - X Matters Series - Developer Events: Scala Matters with John De Goes!
- 2019-02-26 in Copenhagen, Denmark by Mødegruppe for F#unktionelle Københavnere: [Oskar Wickström]: Property-Based Testing The Ugly Parts
- 2019-02-26 in London EC2, United Kingdom by Skills Matter - X Matters Series - Developer Events: Diversity Matters with Bill Liao!
- 2019-02-27 in Leipzig, Germany by Funktionaler Stammtisch Leipzig: Erstes Treffen “Funktionaler Stammtisch” (Clojure, Elm, Haskell, Scala …
- 2019-02-27 in Leuven, Belgium by Belgian Scala User Group: Meet Akka gRPC
- 2019-02-27 in Lille, France by Lille FP: LilleFP 12 : le tant attendu Haskell s’invite à LilleFP !
- 2019-02-27 in Pula, Croatia by Pula Programming Languages Meetup: Haskell - programski jezik budućnosti?
Asia
- 2019-02-24 in Bengaluru, India by Bangalore Functional Programmers Meetup: Functional Data Structures
- 2019-02-27 in Delhi, India by DelhiNCR Haskell And Functional Programming Languages Group: FPNCR Unscripted Online meetup
- 2019-02-27 in Delhi, India by Reactive Application Programmers in Delhi NCR: WEBINAR | Container Networking
- 2019-02-27 in Hong Kong Island, Hong Kong by Hong Kong Functional Programming: Data Efficiency on the Erlang BEAM
South America
- 2019-02-27 in Quito, Ecuador by Quito Lambda: Python con un toque funcional