Issue 94
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
-
In which we create a program displaying a Christmas tree from a single dot on an infinite tape using two cellular automata computed with comonads as used in Haskell. You can also call it yet another comonad tutorial if you like.
-
Domain modeling with Haskell: Factoring out recursion
In the final part of the “Domain modeling with Haskell” series we factor out recursion from the Project data type, and use Fixplate to traverse the tree and accumulate reports. Although a highly flexible and powerful technique, it should not be employed prematurely due to its more advanced nature.
-
I decided to experiment with different ways of storing values with mixed types in the same data structure. This post aims to explain some of the things I found, and should hopefully compliment the good material that others have already published.
-
What do we do in a situation where an upstream package has a bug, and either cannot (within the timeframe desired) or will not release a new version with a fix?
-
We could use some guidelines when trying to learn something. So here’s my very amateurish advice to learning Haskell.
-
In November 2017 I announced MMark — a the strict markdown processor for writers. I worked on it actively for some time since then and this post is a little update about the project, which by the way even has its own GitHub organization now.
-
Google Summer of Code: Haskell.org
We have compiled an ideas list together with long-time Haskell users, compiler contributors and researchers, and as such we believe these are important projects for the industry and academia both.
-
How to derive Generic for (some) GADTs using
QuantifiedConstraints
It turns out that while we won’t be able to derive
Generic
for all GADTs, we can in fact derive them for a subset of them. The trick that makes this possible isQuantifiedConstraints
, an experimental GHC language feature that hasn’t been merged yet. -
An opinionated guide to Haskell in 2018
In the interest of both sharing with others the small amount of wisdom I’ve gained and preserving it for my future self, I’ve decided to write a long, rather dry overview of a few select parts of the Haskell workflow I developed and the ecosystem I settled into.
-
Humble Book Bundle: Functional Programming
More awesome tech ebooks for you. We’ve teamed up with O’Reilly for another bundle full of top-quality books! Get titles like Functional Thinking, Clojure Programming, Learning Scala, and Programming Rust. Plus, your purchase will support Code for America!
Jobs
-
Senior developer at ITProTV in Gainesville
We are currently accepting applications for Senior to Technical Lead full-stack software professionals to join our small but talented multidisciplinary team.
-
Functional programmer at Mood Media in Bucharest
We are currently looking for a Functional Programmer to join our very talented team situated in Bucharest. If you have a grasp of functional programming or you are extremely passionate and willing to learn and evolve, this job is for you.
In brief
- Applicative parsing 1: Building the foundation
- Composable error handling in OCaml
- Constant-time Vinyl field getters
- GHC proposal: Linear types
- How to Snap your awesome (Haskell) app
- Introducing the backprop library
- Laziness and parallelism
- Servant 0.13 released
- The trouble with typeclasses
- Why Haskell is good
Package of the week
This week’s package of the week is feed, a library for parsing, querying, and rendering RSS and Atom feeds.
Call for participation
- bugsnag-reporter: Maybe fields should encode as omitted, not null
- dejafu: Remove use of head
- exercism/haskell: palindrome-products: Use Maybe, returning Nothing when there is no palindrome in the given range
- log-warper: Remove ‘MemoryQueue’ feature
- stack: stack clean should be more thorough by default
Events
- February 15: Functional programming interview questions in Detroit, Michigan, United States
- February 16: Utah Elm lunch in Lehi, Utah, United States
- February 17: SEAHUG: General discussion in Seattle, Washington, United States
- February 19: Charlottesville Haskell Book Reading Club - Chapter 5 in Charlottesville, Virginia, United States
- February 20: Using PureScript to help Alexa take over the world in New York City, New York, United States
- February 21: Better embedded languages with modal type theory in Boston, Massachusetts, United States
- February 22: PureScript happy hour with Justin Woo in Berlin, Germany
- February 23: BOB Konferenz in Berlin, Germany
- February 27: Auckland FP Meetup 3-topic event: Nix/NixOS; Haskell web dev; Lisp in Auckland, New Zealand