Issue 68
Welcome to another issue of Haskell Weekly! Haskell is a purely functional programming language that focuses on correctness, productivity, and expressiveness. This is a weekly summary of what’s going on in its community.
Want to see something featured in Haskell Weekly? We love contributions! Tweet us at @HaskellWeekly or open a pull request.
Featured
-
Build a Reddit Slack bot in Haskell
Do you like Reddit? Do you like bots? If you answered yes to one, both, or neither of those, then you are in luck. This post will go over how to build a Reddit Slack bot in Haskell.
-
It turns out that understanding Git from the inside out is far, far easier than whatever I was trying to do earlier. This blog post is my attempt to share that comfort and understanding with you.
-
Deriving type classes in Haskell is slow
Have you ever wondered how long it takes to derive type classes in Haskell? Wonder no more! I wrote an extensive benchmark that derives a variety of common type classes and ran it against many versions of GHC. The takeaway? Deriving type classes in Haskell is slow.
-
Starting out with Haskell Tensor Flow
In this first article, we’ll go over the basic concepts of Tensor Flow. We’ll see how they’re implemented in Python (the most common language for TF). We’ll then translate these concepts to Haskell.
-
End to end testing with Hspec (almost)
This is a story about setting up end to end (“E2E”, AKA acceptance tests) testing running in Haskell.
-
time.gif is written in Haskell and works by dynamically generating each frame of the GIF and slowly feeding them over the HTTP connection.
-
Efficient immutable collections
In this thesis we introduce data structures that are more performant than comparable state-of-the-art standard library data structures — in terms of operation runtimes and memory footprints — and more general by supporting storage and retrieval of type-heterogeneous data where parametric polymorphism on the language level falls short.
-
Usability issues with linear Haskell
In this post I will discuss a few of the annoying usability issues that have surfaced when working with linear types in a practical setting.
-
User-programmable infix operators in Racket
The resulting technique makes it possible for fixity information to be specified locally in a way that cooperates nicely with the Racket macro system, allowing the parsing of infix expressions to be manipulated at compile-time by users’ macros.
-
Writing performant Haskell (5 of 6): Dive into text
In this post, we finally return to the proposition from the second post that using
text
gives us more optimization flexibility. We will dive into the internals of thetext
package and hopefully come out with some seriously fast functions.
Jobs
-
Lumi is a platform that helps e-commerce businesses manage their packaging supply chain. We are currently hiring backend and frontend engineers. You will work closely with Phil Freeman (creator of PureScript) and our small, distributed engineering team headquartered in Los Angeles. Remote applicants across all US time zones are encouraged!
In brief
- Announcing Hasky Stack
- Functional programming cheat sheet
- Haskell in Leipzig 2017 submission deadline ahead
- hs-flatris is a Flatris clone coded by @ptigwe in Haskell using the Miso library
- ICFP Bingo 2017
- Origamic fold
- The best of both the worlds: Eta and Java (Part 3): Handling Java Inheritance and Java Wrapper Types
Package of the week
This week’s package of the week is http2-client,
a native-Haskell HTTP2 client library based on http2
and tls
packages.
Call for participation
- http2-client: Use
encodeTokenHeader
(resp.decodeTokenHeader
) - miso: 2048 Example
- stack: Improve
stack upgrade --help
documentation
Events
- September 3 - September 9: Oxford, United Kingdom: International Conference on Functional Programming
- September 6: Berlin Haskell Programming From First Principles Study Group