Issue 96 2018-03-01
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.
We have rules for building Haskell libraries (packages), binaries, tests and Haddock documentation. Libraries or binaries can freely provide C/C++ or Java targets as dependencies, or use preprocessors such as
Writing a game in Haskell appears to be an elusive, white-whale task. And with an existing handful of small and citable games, I wish more existed with documentation to ease the barrier of entry.
There are multiple kinds of validation; checking that values have a certain structure, which is deterministic, and things like querying a database to see if a user name is already taken, which is effectful and indeterministic.
I’ve been working on a toy compiler lately so I’ve been thinking about ASTs! It’s a new thing for me and I’ve gotten a bit obsessed with the idea of simplifying both the representation of the tree itself as well as the code to interpret it.
We’ve pulled a Docker image from a registry without using the Docker client or going through the Docker daemon. We also fetched three other artifacts of the
hello-worldDocker image that the stock Docker tooling elides from you.
In my opinion, using the data type I’ve called
Variantto handle heterogeneous collections is currently the best alternative. It is type-safe, efficient (both storage-wise and performance-wise) and easy to use.
This article will cover an interesting problem: given a set of possible investments, each with different tax rates, yearly rates and minimum time until withdrawal, what is the best investment strategy for the next 10, 20 or n years?
The app is written end-to-end in Haskell. Moreover, I tried to use a bunch of new (experimental) stuff, so this blog post is about my experience.
I’ve been doing some GUI coding recently using a combination of Reactive Banana and GTK3. I started out with just GTK3, but I could see it wasn’t going to scale because everything GTK3 does is in the IO monad.
I’m still getting an intuition for comonads, but they seem to embody some kind of “environment”, and comonad transformers are like a “composition of environments”.
Mood Media is still looking for a junior/mid-level PureScript developer to work on our digital signage solution. PureScript experience is not required — any FP experience will do. The job is in Bucharest, Romania — no remote.
At Monadic, the team behind oscoin, we’re hiring our first engineers. We’re looking for experienced candidates who are well versed in functional programming and distributed systems.
Strats are generalist software engineers. You will work on the trading floor, directly with traders, building software to automate their work and improve their efficiency.
Holmusk is a digital healthcare company based in Singapore that is focused on helping people manage chronic disease. We are building a Haskell backend team in Singapore and looking for junior developers.
- Attoparsec: The clarity of do-syntax
- GHC 8.4.1-rc1 available
- Hackage account registration changes
- I want Stackage and I only have 3 minutes until takeoff
- Liquid Haskell tutorial
- What is currying?
Package of the week
This week’s package of the week is sdl2, which provides both high and low level bindings to the SDL2 library.
Call for participation
- aeson: Export something similar to Yaml’s encodeFile/decodeFile
updateseemingly isn’t compatible with
stack newrequires network to work
- tabletop: Documenting information to help new developers
- Lambda Trondheim is hosting a concrete introduction to Haskell on March 1 in Trondheim, Norway.
- Silicon Valley Deep Specification is covering chapter one of Software Foundations, functional algorithms, on March 2 in Santa Clara, California, United States.
- The Belgian Scala User Group is explaining implicit functions and reader transformers on March 5 in Mechelen, Belgium.
- The Milwaukee Functional Programming User Group is hosting lightning talks on March 6 in Milwaukee, Wisconsin, United States.
- Lambda Montreal is discussing higher-order multidimensional programming on March 7 in Montreal, Canada.
- Haskell.SG is hosting their March meetup on March 8 in Singapore.