Issue 107
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
-
A basic introduction to Clash for FPGA Development: Part 2
In our previous post, I gave a brief introduction on how to create simple combinatorial hardware in Clash and we ended up with a partly working, ugly circular stack implementation. In this post we will fix the bug, tidy up the code to make it much nicer to read, and simulate our design.
-
A purely functional typed approach to trainable models
With the release of
backprop
, I’ve been exploring the space of parameterized models of all sorts, from linear and logistic regression and other statistical models to artificial neural networks, feed-forward and recurrent (stateful). -
Advanced Github: Webhooks and automation
For now, we’ll conclude our series on deployment by looking at the Github developer API. Most projects you’ll work on use Github for version control. But with the API, there are a lot of interesting tricks that can make your experience cooler!
-
Once the initial decision to have a dynamically typed exception system was made, everything that could make use of an exception-like semantic in any case was bolted on. What am I going to do, though? Write my own ecosystem and runtime that works how I would prefer?
-
Free monoidal functors, categorically!
I followed some ideas from category theory but, being a programmer, I leaned more towards writing code than being preoccupied with mathematical rigor. That left me longing for more elegant proofs of the kind I’ve seen in mathematical literature.
-
Fun with stack: Haskell dependency management
Dependency management in Haskell is complicated. Even if one is able to become productive in the language, any of the problems described here could still make it difficult enough for them to give up on the system they want to build.
-
How to Flatpak a Haskell app into Flathub
Once that last commit goes in, it’s time to get your app out there by opening up a distribution channel. One viable Linux app distribution channel is Flathub. To add your app to Flathub, you must first make a Flatpak manifest.
-
In this video we’ll explore the basics of Cabal, and how you can use it to package libraries, build executables, run automated tests, and more. We’ll also have a look at the family of
new-
commands. -
Objects with special collection routines in GHC’s GC
A generational copying garbage collector, in its most basic form, is quite simple. However, as we’ll see, not all objects can be copied, and some objects require more bookkeeping by the RTS.
-
Project arbitraries with view patterns
Had I been writing F# code, I’d immediately be reaching for an active pattern, but this is Haskell. If there’s one thing, though, I’ve learned about Haskell so far, it’s that, if F# can do something, there’s a very good chance Haskell can do it too — only, it may be called something else.
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.
-
Software engineer at Facebook in London
We are looking for candidates who share a interest for performance analysis, tuning, and optimizing the GHC compiler and runtime for our workload.
-
You will work on the trading floor, directly with traders, building software to automate their work and improve their efficiency. The role is highly development focused and you will use Haskell for almost all tasks.
In brief
- Announce: hasktags 0.70
- Grading students: HaskellRank #02
- Haskell communities and activities report
- Minimal effort build improvements and a GHC 8.2.2 upgrade
- Why did you decide to learn Haskell?
Package of the week
This week’s package of the week is ghc-syntax-highlighter, a syntax highlighter for Haskell using lexer of GHC itself.
Call for participation
- curl-runnings: Expect data: Not contains
- hledger: a posting date can cause incorrect stats
- taffybar: Add a log formatter to taffybar, make colors etc controllable from the dbus interface
Events
- May 17: Functional Programming Meetup in Las Vegas, Nevada, United States
- May 18: FP vs. OOP: Beyond the bikeshed in Chicago, Illinois, United States
- May 19: Domina Haskell con Katas de Codewars in Madrid, Spain
- May 20: Tokyo Haskell meetup in Tokyo, Japan
- May 21: Utah Haskell meetup in Lehi, Utah, United States
- May 22: Deriving via in Regensburg, Germany
- May 23: Self-paced Haskell Study Group in Dublin, Ireland
- May 23: Hamburg Haskell Meetup: “Probabilistisches Programmieren und Freie Monaden” in Hamburg, Germany