Issue 158
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.
Featured
-
Benchmarks of various trie implementations by Marco Zocca
While studying various approaches to prefix trees (“tries”), I wrote a small memory and time benchmark of four implementations.
-
Build a HTTP Proxy in Haskell on AWS Lambda by Chris Bacon
This is just a quick one to put some Haskell code on AWS Lambda, and what’s better than a good-old HTTP Proxy?
-
co-log logging library with polysemy for extensible effects and chronos for fast time by Kowainik
We are thrilled to share the new release of our multipackage logging library co-log!
-
Discovering DataKinds at Runtime by Travis Whitaker
Something almost universal to introductions to “type-level programming” in Haskell is an example involving sized vectors.
-
Drawing foldl and foldr by Joachim Breitner
Often, someone wants to exhaling the difference between a left-fold and a right-fold, i.e. foldl and foldr in Haskell, you see a picture.
-
Haskell monads and the nest of lies by John Sullivan
The IO monad in Haskell works by assuming our universe is in a simulation and that your tiny computer can capture the entire state of the universe and play it forwards in real time.
-
Higher Kinded Option Parsing by Chris Penner
Higher Kinded Data Types (HKDTs) have piqued my interest lately. They seem to have a lot of potential applications, however the ergonomics still aren’t so great in most of these cases.
-
Purity in Haskell by Marco Sampellegrini
Purity is not about preventing side effects, it’s about having a clear boundary between code with side effects and pure code.
-
Some Tricks for List Manipulation by Donnacha Oisín Kidney
This post is a collection of some of the tricks I’ve learned for manipulating lists in Haskell. Each one starts with a puzzle: you should try the puzzle yourself before seeing the solution!
Jobs
-
Galois is hiring for a variety of roles (ad)
Including but not limited to: Software Engineers/Researchers, Project Managers, Hardware Engineers, Red Team Lead, Software Integration Engineer.
We collaborate with organizations like NASA, DARPA, and AWS to explore blue sky ideas and turn them into usable technology. Some of the things we’ve worked on in the past: Formal methods, static analysis, cryptographic algorithms, abstract interpretation, type theory, formal verification, reinforcement learning, autonomous systems assurance, communication security, cyber-deception for network defense, DDoS defense, provable hardware security, and statistical anomaly detection for detecting advanced persistent threats. We think working here is awesome; see lifeatgalois.com.
-
Mercury is hiring a Haskell engineer (Full-time/SF/US Remote) (ad)
Mercury is a bank for businesses. Founded in 2017, Mercury is growing rapidly and is hiring an additional two full-time engineers. Join a small team writing a backend in 100% Haskell, using Nix for deployment, and using Typescript/React on the frontend.
Trying to hire a Haskell developer? You should advertise with us!
In brief
- A List of Foundational Haskell Papers
- Announce: Haskell Platform 8.6.5
- Google Summer of Code projects for Haskell.org
- inline-js: Seamless JavaScript/Haskell interop
- Iteration to infinity
- Lens as a Divisibility Relation: Goofin’ Off With the Algebra of Types
- Making Arrays Mutable!
Package of the week
This week’s package of the week is Haze, a small BitTorrent client for learning purposes.
Call for participation
- codeworld: Remember dark-mode setting in a cookie
- futhark: Rewrite cmp-bench-json.py in Haskell
- hledger-flow: Add a README to the release tarball
- squeal: Defining indexes as part of the definition
Events
North America
- 2019-05-09 in Raleigh, NC, USA by Raleigh Haskell Meetup: (hack . yack)
- 2019-05-10 in Austin, TX, USA by Austin Types, Theorems, and Programming Languages: Going through Software Foundations by Benjamin Pierce et al
- 2019-05-11 in Berkeley, CA by Code Self Study: Open Programming Session (Saturday Afternoon)
- 2019-05-11 in Norcross, GA, USA by Atlambda Haskathon: Atlambda Haskathon
- 2019-05-11 in Boston, MA, USA by Weekly Functional Programming Meetup: Hang out + short talk (by Nick Lawler – topic not yet announced)
- 2019-05-13 in Irvine, CA by Orange Combinator - Functional Programming In OC: Combinating - The Weekly Function
- 2019-05-13 in Pittsburgh, PA, USA by Pittsburgh Functional Programming Meetup: Tidalcycles Overview
- 2019-05-14 in Vancouver, BC, Canada by Functional Programming Vancouver: Functional Programming Meetup
- 2019-05-14 in Denver, CO, USA by DenverFP: Introduction to the Elixir Language
- 2019-05-15 in Houston, TX, USA by Houston Functional Programmers: To be determined
- 2019-05-15 in St. Louis, MO, USA by Haskell Users Group: St. Louis: Haskell Live Coding and Mobbing
- 2019-05-15 in Boulder, USA by Boulder Haskell Programmers: Co-Effects
- 2019-05-16 in Toronto, ON, Canada by Toronto Haskell Meetup: Haskell Meetup: From Beginner to Less Beginner
Europe
- 2019-05-09 in Wien, Austria by Vienna Haskell Exchange Meetup: Haskell Function Evaluation
- 2019-05-09 in London, United Kingdom by Hoodlums: Hoodlums Meetup
- 2019-05-13 in Karlsruhe, Germany by Karlsruhe Haskell Meetup: Parallel and Concurrent Programming Study Group
- 2019-05-13 in Delft, Netherlands by Delft Haskell Study Group: Haskell Study Session #11
- 2019-05-13 in Sofia, Bulgaria by Lambda Dojo Sofia: The Post Holiday Coding Dojo
- 2019-05-13 in Bucharest, Romania by Bucharest FP: Bucharest FP #52 — GenArt for fun and learning
- 2019-05-14 in Newcastle Upon Tyne, United Kingdom by Functional Programming North East: Functional Programming…
- 2019-05-14 in Berlin, Germany by Berlin Haskell Users Group: GHC Records - Past, Present & Future
- 2019-05-14 in Bristol, United Kingdom by CodeHub Bristol: Hack Night
- 2019-05-15 in Nieuwegein, Netherlands by Typesafe Utrecht: Talks and drinks: Kotlin vs Scala and Haskell
- 2019-05-15 in Vinohrady, Czech Republic by Prague Lambda Meetup: Clojure Wednesday
- 2019-05-15 in Wroclaw, Poland by Functional Programming Wroclaw: fp-wroc #26 Czego potrzebujesz by zbudować swój własny DSL w Scali (cześć 2)
- 2019-05-15 in Amsterdam, Netherlands by FP AMS: The Tricks of Game Programming in a Pure Functional Language
- 2019-05-16 in Frankfurt, Germany by Frankfurt Haskell User Group: RIO eine neue Standard Library für industrielle Haskell Anwendungen
- 2019-05-16 in London EC2, United Kingdom by Skills Matter - X Matters Keynote Series - Developer Events: Keynote by George Adams on AdoptOpenJDK - And how it impacts you in 2019
Oceania
- 2019-05-13 in Albert Park, Australia by Melbourne Haskell Users Group: Melbourne Functional Programming Autumn Festival
Africa
- 2019-05-13 in Sandton, South Africa by Lambda Luminaries: Placeholder: Putting the Fun back in Functional at Lambda Luminaries
South America
- 2019-05-16 in AAQ, Argentina by Buenos Aires Haskell Meetup: BAHM - Mayo 2019