Welcome to another issue of Haskell Weekly! Haskell is a purely functional programming language that focuses on robustness, concision, and correctness. This is a weekly summary of what’s going on in its community.
This release candidate fixes a number of regressions from 8.0.2 found in release candidate 2, as well as a major correctness bug present in several previous GHC major releases. Users taking advantage of parallelism in their programs will be strongly encouraged to upgrade to 8.2.1 once it is released.
Editor’s note: Use this
stack.yamlto test GHC 8.2.1-rc3 with Stack.
There is a collection of features in Stack that have been added in bit by bit, as opposed to being designed into a cohesive whole from the start. The features work, but could be a bit better. We’ve known for a while that, instead of putting in place strategic fixes, a more general refactoring of the core dependency management logic was in order.
Videos of the Haskell keynotes from ZuriHac, the Zurich Haskell hackathon. Includes presentations from Edward Kmett, Stephen Diehl, Simon Thompson, Neil Mitchell, and Julie Moronuki.
Come change how 6.5+ million K-12 US students learn Math, Language Arts, Social Studies and more. Use data, advanced type systems, great product design and deep pedagogy to change lives.
Real streaming data is handled at the library level in Haskell, with many different options available. Rust does things differently: it bakes in a concept called iterators not only with the standard library, but the language itself:
forloops are built-in syntax for iterators.
We’re pleased to announce our first bit of open source code. It is a CLI utility that fetches secrets from the HashiCorp Vault secret store. It makes secrets available using environment variables to a process of your choosing.
Danger is a Ruby gem that you can use on your continuous integration process to automate code reviews. Danger can automatically go through the code in a an open pull request and check if it respects the rules your team and you have established.
In part 1 I went over the basics of the reader monad. In this post I’ll cover some more advanced topics and alternatives to the reader monad.
Objects can be thought of as Mealy machines of effects, and their Haskell encoding is actually straightforward. This novel building block might be too strong to use everyday, but I’m pretty sure there are places where this abstraction fits well, like game programming.
So at this point, are we condemned to choose between a fast inaccurate algorithm and a correct but slow one? In this case the answer is no! This problem is actually best solved by using a graph algorithm!
Package of the week
This week’s package of the week is Solga, a library for easily specifying web APIs and implementing them in a type-safe way.
Call for participation
Are you interested in contributing to open-source Haskell projects but not sure where to start? Here are some tasks from the Haskell community for you to pick and get started!
- aeson: Hindent?
- cabal: Print out more information about the effective configuration when you build
- esqueleto: Make examples for the README buildable
- miso: phantomjs2 fails to build on OSX
- servant: BasicAuthentication has no documentation for client-side use
stack newcan’t be pointed at an intranet site
- text: Add tshow function
Email [email protected] with your beginner-friendly issues to get them included.