Issue 110
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
-
Eta v0.8: REPL and metaprogramming
This release implements two long-awaited features: (1) Eta REPL: It is based on GHCi and provides a way to interactively write Eta programs using the read-eval-print-loop. (2) Template Metaprogramming: It is based on Template Haskell and allows you to do code generation at compile time similar to macros in Lisp-like languages.
-
Type classes: Prepare for launch
The videos give us a chance to show what happens when you make different kinds of mistakes, but the text is more useful when you want to look back, review, refresh your memory.
-
Restyled makes it easy to maintain, or transition to, a consistent coding style across your entire organization by integrating directly into your existing Pull Request process.
-
This article is an introduction to writing generative art with Haskell, using a stack inspired by Ben Kovach’s similar post I came across in March. I assume familiarity with Haskell and an interest in generative art.
-
Recently I’ve been working on distributed systems and I often need to deal with the data that may be located anywhere. We’ll see how just one algebraic construction helped to describe a problem with recycling data in general and then to solve it.
-
This post is about implementing coverage checking of pattern matches using Haskell. It does not involve any super-advanced type-level trickery, so as long you’re somewhat comfortable with monad transformers you should be fine.
-
Breadth-first traversals in far too much detail
After looking at the algorithms I posted last time, I noticed some patterns emerging which I thought deserved a slightly longer post. I’ll go through the problem (Gibbons 2015) in a little more detail, and present some more algorithms to go along with it.
-
Heterogeneous lists with dependent types in Haskell
With the help of GHC’s many extensions, we can encode simple forms of dependent types, allowing us to enforce more expressive invariants in our programs at compile time.
-
Research as a build system with Shake
In the last year, I have the opportunity to try out a new way to improve upon my own productivity doing research and other university-related projects. I call it the research build system, and it has allowed me to iterate on my work more quickly.
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
- Agda 2.5.4 released
- Algebraic data types (ADTs) in Haskell
- Church-encoded
Maybe
- Codeworld: Haskell as a first programming language
- Elm from a Haskell perspective
- GHC: Introduce
DerivingVia
- Haskell adoption and user satisfaction growing
- High-level quantum assembly using Haskell
- Semi-formal development: The Cardano wallet
- Stackage nightly 2018-06-01 using GHC 8.4.3
- What is new in cross compiling Haskell
Package of the week
This week’s package of the week is clock, a library that provides convenient access to high-resolution clock and timer functions of different operating systems via a unified API.
Call for participation
Events
- June 7: Haskell.SG June meetup
- June 8: Going through Software Foundations by Benjamin Pierce
- June 9: Norcross Haskathon
- June 10: Haskell 101
- June 11: Haskell in 2018: A software engineering perspective
- June 12: Hedgehog state machine testing & Typescript Sodium
- June 13: Haskell Wednesday