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.
The GHC team is very pleased to announce the first candidate of the 8.2.2 release of the Glasgow Haskell Compiler. This is the first of two release candidates leading up the final 8.2.2 release.
Editor’s note: Use this
stack.yamlto easily test GHC 8.2.2-rc1 with Stack.
Much has been said about the benefits of
Freemonads. The idea of expressing computation as a data type is very powerful. Separating interpretation from representation gives us a lot of freedom, but what are its costs?
I took it upon myself to try and convert this work into a PDF, and with his permission, so I have! I scraped the blog, converted it to LaTeX using Pandoc, and manually tweaked a whole bunch of things. The result is one beautifully-typeset PDF, if I say so myself.
The fact that we’re writing this CPU in Haskell instead of in an HDL like Verilog means that there will be substantial stylistic differences from how CPUs are normally written. However, almost all of these differences make it vastly simpler and faster to write hardware.
My long weekend project is (arguably) useful enough to share, so I’ve published it. It’s called
hgrep, and it uses
ghc-exactprintand regular expressions to search Haskell source code from the command line.
One area which makes my brain tingle on a regular basis is the combination of Haskell and category theory. The topic of this blog post is one simple example: I’m going to show a way of thinking of functions as functors which, at least to me, makes it intuitive.
Category theory generalizes some intuitive relations, such as how numbers combine. Instead of discussing numbers, however, category theory considers abstract “objects”. This field of mathematics explore how object relate and compose.
Haskell is, at its core, a coherent, understandable thing. Many other languages have an ad hoc character to them — they were made to make things. They made design decisions based on what seemed useful and pragmatic to their makers and intended audiences.
Sadly we aren’t currently aware of any Haskell job openings. Are you looking to hire a Haskell developer? If so, consider advertising with us!
- Catch-all considered harmful?
- Don’t fear the profunctor optics
- Haxl: A big hammer for concurrency
- How to compose streaming programs
- Simple text-based drawing DSL
- Switching [Reflex FRP tutorial]
- Trouble with databases? Persevere with Persistent
Package of the week
This week’s package of the week is ghcid, a bare bones IDE. It is a very simple Haskell development tool which shows you the errors in your project and updates them whenever you save.
Call for participation
- dejafu: ThreadAction for threadDelay
- hgrep: Adjacent search results should be folded together
- servant-persistent: Update to a GHC 8 LTS stackage
- October 26 – October 28: Haskell in Leipzig 2017