Issue 94 2018-02-15
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.
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.
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.
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.
It turns out that while we won’t be able to derive
Genericfor all GADTs, we can in fact derive them for a subset of them. The trick that makes this possible is
QuantifiedConstraints, an experimental GHC language feature that hasn’t been merged yet.
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.
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!
We are currently accepting applications for Senior to Technical Lead full-stack software professionals to join our small but talented multidisciplinary team.
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.
- 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
- February 23: BOB Konferenz in Berlin, Germany