Issue 164 2019-06-20
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.
An opinionated beginner’s guide to Haskell in mid 2019 by Varun Gandhi
This is mostly intended as a guide for people who are beginners to Haskell, or have experience in other similar languages and are looking to learn Haskell. Depending on where you are in your Haskell journey, parts of this guide might not make sense. That’s perfectly normal, relax.
Bringing TLS 1.3 to Haskell by Kazu Yamamoto
So, it’s high time to bring TLS 1.3 to the Haskell community. We proudly announce that we have released TLS library version 1.5.0 with TLS 1.3!
This was a rare opportunity to compare implementations of large programs that all did the same thing, written by friends I knew were highly competent, and have a fairly pure opportunity to see what difference design and language choices could make.
One of the ideas of functional programming is having pure functions, functions that have no side effects. But writing programs made exclusively from functions without side effects can’t be useful in the real world, because programs have to affect the real world somehow.
Peoplemon: An all-Haskell role-playing game by Alex Stuart
This is a new and fairly substantial game that I wrote all in Haskell. I implemented many features of a certain 90s-era handheld role-playing game.
Shake from 10,000ft by Neil Mitchell
The theory behind Shake is now well documented in the Build Systems a la Carte paper, but the engineering design of the system is not. This post is a high-level overview of Shake, from 10,000ft (the types are the types I’m thinking of in my mind - read the source code for the ground truth).
Shaking up the IDE by David Millar-Durrant
Recently at Digital Asset we open sourced our programming language DAML, but I’m not going to talk about that today. Nestled inside its compiler is the Haskell IDE Core. I’m going to explain what that project is in this blog post.
Taking a look at how GHC creates unique Ids by Andreas Klebinger
This post looks at one of the most hammered bits in the whole compiler, namely GHC’s unique supply. GHC requires a steady supply of unique identifiers for various reasons. There is nothing special about this. But I found the implementation quite interesting especially given how critical it is for the compiler.
The Functor Combinatorpedia by Justin Le
The goal is to represent schemas, DSL’s, and computations (things like parsers, things to execute, things to consume or produce data) by assembling “self-evident” basic primitives and subjecting them to many different successive transformations and combiners.
Type Classes: Our one-year anniversary celebration by Julie Moronuki
What would happen if two people worked full time on Haskell documentation? Could we get this ecosystem documented?
Including but not limited to: Software Engineers/Researchers, Project Managers, Hardware Engineers, 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.
Trying to hire a Haskell developer? You should advertise with us!
- A Tic-tac-toe CLI game in Haskell
- Announcing looper
- Brittany version 0.12.0.0 released
- Count-Min Sketch in Haskell
- Functional Design and Architecture Book
- GHC 8.8.1-alpha2 released
- HLint’s path to the GHC parser
- ICFP 2019 accepted papers
- Lambda-Heights: A fast paced action game
- Leaves of Hash
- Loading Games and Changing Colors!
- Records of Functions and Implicit Parameters
- Stack version 2.1.1 released
- TaskLite: A CLI task manager
- Thoughts on PureScript package management in 2019
- Understanding unliftio
Package of the week
This week’s package of the week is unordered-containers, a library providing efficient hashing-based container types.
Call for participation
- 2019-06-20 in Raleigh, NC, USA by Raleigh Haskell Meetup: (hack . yack)
- 2019-06-20 in Austin, TX, USA by Austin.Elm: Elm Hack Night at Lunar Collective
- 2019-06-20 in Chicago, IL, USA by Chicago Functional Programming: MakerLisp Machine: an eZ80 CPU card running bare-metal Lisp by Luther Johnson
- 2019-06-22 in San Francisco, CA, USA by Queerious Labs: Haskell for Beginners: Special Topic - Parsing
- 2019-06-22 in Boston, MA, USA by Weekly Functional Programming Meetup:
- 2019-06-23 in Des Moines, IA, USA by Des Moines Haskell Study Group: (South DSM) Week 5. Functional patterns. (Review ch. 1-6 plus ch. 7 & 8)
- 2019-06-24 in Irvine, CA by Orange Combinator - Functional Programming In OC: The Weekly Function
- 2019-06-25 in Brooklyn, NY, USA by New York Haskell Users Group: Parallel and Concurrent Haskell Reading Group
- 2019-06-25 in Santa Monica, CA, USA by Santa Monica Haskell Users Group: Haskell Hack Night
- 2019-06-27 in Raleigh, NC, USA by Raleigh Haskell Meetup: (hack . yack)
- 2019-06-27 in Las Vegas, NV, USA by Las Vegas Functional Programming User Group: Functional Programming Meetup
- 2019-06-27 in Chicago, IL, USA by The Project Euler Sprint: Project Euler Sprint
- 2019-06-20 in London EC2, United Kingdom by Skills Matter - xMatters Keynote Series - Developer Events: Keynote by Markus Eisele on Java in the Age of Containers and Serverless
- 2019-06-24 in Karlsruhe, Germany by Karlsruhe Haskell Meetup: Haskell Monday
- 2019-06-24 in Delft, Netherlands by Delft Haskell Study Group: Haskell Study Session #15
- 2019-06-24 in London EC2, United Kingdom by Skills Matter - xMatters Keynote Series - Developer Events: Keynote by Bruce Lawson on How To Make Loveliness: an HTML Treasure Hunt
- 2019-06-24 in London EC2, United Kingdom by Skills Matter - xMatters Keynote Series - Developer Events: Dick Wall on Why API Design Matters, and Why Yours Sucks! (and mine sucks too!)
- 2019-06-25 in Regensburg, Germany by Regensburg Haskell Meetup: June Meetup
- 2019-06-25 in Bristol, United Kingdom by CodeHub Bristol: Hack Night
- 2019-06-25 in Brno-střed, Czech Republic by Functional Programming Brno: Zurihac Trip Report & The Art of Editing
- 2019-06-25 in London EC2, United Kingdom by Skills Matter - xMatters Keynote Series - Developer Events: Keynote by Rachel Appel: Build Data Driven Web Apps using ASP.NET Core
- 2019-06-25 in Copenhagen, Denmark by Mødegruppe for F#unktionelle Københavnere: Scripting, pure and functional
- 2019-06-26 in Berlin, Germany by Berlin Haskell Users Group: Haskell Wednesday
- 2019-06-26 in Leipzig, Germany by Funktionaler Stammtisch Leipzig: “Funktionaler Stammtisch” Clojure, Elm, Haskell, Scala and Co…
- 2019-06-20 in Noida, India by Reactive Application Programmers in Delhi NCR: [Webinar- 20 June]: Live without Exceptions in Rust
- 2019-06-21 in Hong Kong, Hong Kong by Hong Kong Functional Programming: The Joy of Functional Programming (for Data Science)
- 2019-06-22 in Bengaluru, India by Bangalore Functional Programmers Meetup: Haskell - Software Transactional Memory
- 2019-06-22 in Nairobi, Kenya by Nairobi JVM: Threading and Concurrency in Java
- 2019-06-26 in Quito, Ecuador by Quito Lambda: Desarrollo y despliegue de aplicaciones con Nix
- 2019-06-27 in Melbourne, Australia by Melbourne Haskell Users Group: Melbourne Haskell Users Group Meetup