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!

  • Error handling in Haskell

    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.

  • Introduction to Cabal

    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.

  • Strat at Standard Chartered

    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

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

Events