Issue 78 2017-10-26
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.
It is time to put out a call for new nominations (typically but not necessarily self-nominations) to the haskell.org committee. The Haskell.org committee serves as a board of directors for Haskell.org, a 501(c)3 nonprofit which oversees technical and financial resources related to Haskell community infrastructure.
There have been some major changes to Stack’s internals since version 1.5.1 in order to update the
extra-depssyntax, support extensible custom snapshots, and to support version 2.0 of the Cabal library. We’d appreciate extra testing before we cut a release candidate for version 1.6 to make sure we catch any edge cases.
As mentioned in the September edition of What is New in Cross Compiling Haskell, I’ve been working on producing binary distributions of cross compilers, so that installing a cross compiler becomes almost as trivial as installing a GHC binary distribution.
When you find things incomplete or unclear in Haskell’s documentation, please fix them! I’ve submitted a handful of pull requests so far to make tweaks to the API docs. GHC seemed intimidating at first, but I’ve found the maintainers to be quite friendly.
Seeing this for the first time, trying to wrap my head around it, had created a bug inside my head. It had conflicted with what I knew — that all languages worked the same, and the difference was merely syntax! But here, I was seeing something that just worked differently, and did not fit my world view!
Sixten is an experimental functional programming language where all data is unboxed by default. Functional programming with fewer indirections! Sixten is very related to other functional languages such as Haskell, Agda, and Idris. The biggest difference between other languages and Sixten is the way that Sixten allows us to control the memory layout of data.
In “Scrap your type classes” Gabriella Gonzales explains how we can replace type classes with dictionary passing. In this article I describe a sort of “halfway house” to scrapping all our type classes. Suppose we were only allowed one type class. Which would we choose?
In this article I demonstrate how to use classy prisms and
Platedto write and apply optimizations to programs written in a free monad DSL.
Platedis a class in lens that provides powerful tools to work with self-recursive data structures.
I think that if you, well-intentioned as you are, want to really encourage beginners to ask more questions and seek help, you need to look around and see how many programmers are leaving pickled onions in the food drive boxes.
I’d like to share some thoughts on this from a much more positive standpoint, which will help you get people to pay more attention, be more helpful, and — perhaps most importantly — create a healthier open source community over all.
California State University, Los Angeles is looking for a tenure-track assistant professor of Computer Science to start in August 2018. The primary professional responsibilities of instructional faculty members are: teaching, research, scholarship and/or creative activity, and service to the University, profession and to the community.
- Adding SQLite-powered full-text search to a Servant-powered Haskell app
- Diagrams with text: Knowledge graph software aimed at non-programmers
GetOptand extensible records
- Tangled webs: Testing an integrated system
- The Disciplined Disciple Compiler v0.5.1
- The economics of semantic coding
- Version you an API for great good
Package of the week
This week’s package of the week is Hasmin, a CSS minifier that reduces the size of the output and improves Gzip compression.
Call for participation
- arithmoi: Benchmark Math.NumberTheory.GCD
- digraphs-with-text: topological sort
- Yampa: Add count to Yampa’s main export list
Looking for something to contribute to? Check out the Hacktoberfest issues on GitHub!
The call for proposals for the Real World Functional Programming miniconf at LCA2018 is open from now until November 27.