Issue 109
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.
Featured
-
The GHC team is pleased to announce the availability of GHC 8.4.3. Thanks to everyone who has contributed to developing, documenting, and testing this release!
-
Fibonacci compiles end-to-end: Haskell to WebAssembly via GHC
The project recently reached an exciting milestone: for the first time, simple Haskell functions can be compiled all the way down to WebAssembly from Haskell and executed with a real JavaScript runtime!
-
Combinatorics of permutations: Introduction
This is a very small chapter (just one page) in the book, and all we do here is define a permutation, introduce some notation, and count the total number of permutations of a given number of objects (everyone knows the answer).
-
Edit: A small package for rewriting things
I was working on a compiler in the last semester with some friends and we found it helpful in saving the “was something changed” information when doing constant folding (expression level) and passing that information to the Hoopl library.
-
Haskell/GHC symbol search cheatsheet
Several features of Haskell/GHC have low Google-ability because some of them are composed of symbols. This page is a reference collection to support search of them.
-
Even if you’re not interested in the music part, it’s an example of a Haskell program with a GUI, REPL based interface, tests, profiling, and a Shake-based build system, although probably idiosyncratic implementations of all of the above.
-
I’ve worked on a lot of open source Haskell projects over the past ten years, and continue to do so today. However, I’m making a conscious decision to shift where my focus lies. My goal is to focus much more on enabling others to work on projects, rather than doing so myself.
-
Squashed c x
let a library writer providex
in “c
-irrelevant” way to a library user. TheMonad
instance allows to work on the wrapped value. However, we cannot extract the original value. This restriction maybe be useful to enforce correctness, without relying on the module system! -
Looking back, the experience of upgrading Shake didn’t turn out to be as difficult as I had once thought. This exercise pretty much reinforced what I had already known about using Haskell industrially.
Jobs
-
Software engineer at ITProTV in Gainesville, Florida
ITPro.TV is a fast-growing digital media business that focuses on continuing education in technical domains. We are currently accepting applications for full-stack software professionals to join our small but talented multidisciplinary team.
In brief
- animate-frames: A workflow tool for converting sprite frames into a spritesheet
- Duet: A programming language focused on interactive collaboration between the developer and the computer
- Freq: A way to train a model that predicts the “randomness” of an input
- Primitive 0.6.4.0 released
- Refined: Refinement types with static and runtime checking
Package of the week
This week’s package of the week is sixty-five-oh-two, an eDSL for writing 65(C)02 bytecode.
Call for participation
Events
- May 31: GHC Newcomers Guide in Zürich, Switzerland
- June 2: Hang out, chat FP, work on some code in Boston, Massachusetts, United States
- June 3: Why Scala? in Naperville, Illinois, United States
- June 4: Haskell Peer Study Group in Vancouver, British Columbia, Canada
- June 5: Monadic Warsaw #14 in Warsaw, Poland
- June 6: Auckland FP Meetup: 3 Talks: Remote Haskell; Prototyping for Radar; Pure TensorFlow Combinators in Auckland, New Zealand
- June 7: Haskell.SG June Haskell Meetup in Signapore