Issue 124 2018-09-13
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.
In this blog post I’m going to take a break from Haskell and spread the good word of Dhall. The good news is that it won’t be a break from functional programming. We still have all the good stuff in Dhall like: lambdas, products, sums and types!
In part 2 of Building a Blog I will talk about how the small HTTP API used by this blog was implemented. Once again, because I like Haskell, I’ll use the Scotty web framework to listen to HTTP requests and run SQLite queries with the Beam library.
Lists and functions are core concepts that any Haskeller learns from the get-go. But the list data structure and function application are also monads! And understanding how they work as such can teach us more about how monads work.
This short blog post covers the process of creating the
.hlint.yamlfile from the Dhall configuration. You can wonder, why we are not using Haskell for such purposes. The answer is that we don’t need IO capabilities for our problem; totality and safety of Dhall are enough here.
This is the first article in a series about continuations, forking, and monad transformers. Motivation: When using
IO, we sometimes would like to fork and still remain in this “monadic context”.
As software engineers, we write programs to compute values at runtime. Sometimes, if there is an available static type system, we use types to check our code at compile time. However, is it possible to write code computing types at compile time? Does it make sense to do that?
My latest project has been to plot a map of orienteering maps in the UK. This post explains the technical aspects behind the project and primarily the use of
funflowto turn my assortment of scripts into into a resumable workflow.
Something that;s not often explicitly controlled is novelty. One of the dirty secrets of programming is that almost every production codebase contains some dependency that the developers have never used before. Why are we indulging in so much novelty anyway?
Implementing Quake 3 in Haskell & Vulkan. All work on this is streamed live on Twitch. We’ve still got a long way to go, but things are starting to take shape.
GitHub is seeking an experienced engineering manager to lead a team working in Haskell focused on applied Programming Language Theory (PLT), parsing, syntax representation, various program analysis techniques (including abstract interpretation), and unparsing / code refactoring. If you are excited about leading engineers, applying recent PLT research to help make software easier, faster, and safer to write please view our job listing for more details.
do-notation: generalized do-notation for using monads and indexed monads simultaneously
goat-guardian: Reverse proxy that handles authentication
- Announce: Squeal 0.4
- Deploying Haskell apps with Kubernetes
- Getting started with Haskell workflow
- Is learning how to use the Lens library worth it and in hindsight was taking this approach really the best direction for Haskell?
- Proposal: List instances for a type in GHCi
- Punching a big hole through a newtype
- Why I never finish my Haskell programs: Part 2 of ∞
Package of the week
This week’s package of the week is Range, an efficient and versatile range library. It supports bounded and unbounded ranges, ranges in a nested manner (like library versions), an efficient algebra of range computation and even a simplified interface for ranges for the common cases.