Sat 11 Apr 2020

What I Wish I Knew When Learning Haskell

This is a guide for working software engineers who have an interest in Haskell but don’t know Haskell yet. I presume you know some basics about how your operating system works, the shell, and some fundamentals of other imperative programming languages. If you are a Python or Java software engineer with no Haskell experience, this is the executive summary of Haskell theory and practice for you. We’ll delve into a little theory as needed to explain concepts but no more than necessary. If you’re looking for a purely introductory tutorial, this probably isn’t the right start for you, however this can be read as a companion to other introductory texts.

Source: What I Wish I Knew When Learning Haskell 2.5 by Stephen Diehl.

zz: a smart and efficient directory changer

A nice feature I’ve become used to in the last year is a so-called “smart directory changer” that keeps track of the directories you change into, and then lets you jump to popular ones quickly, using fragments of the path to find the right location.

There is quite some prior art in this, such as autojump, fasd or z, but I could not resist building my own implementation of it, optimized for zsh.

Source: leah blogs: zz: a smart and efficient directory changer by Leah Neukirchen.

C Needs Better Syntax and Macros

Today I’ve decided that I want to write a little rant on the topic of language design. Since I’m a C programmer, and I use it on a daily basis, I’ve had many thoughts about C syntax over past few years. I like C, and it is a good language, that defined modern operating systems and software. But I think that C still needs a better syntax and macro system. Not because C syntax is inconvenient to use, but because syntax is a tool of expression. And macros can extend this concept even further.

Source: C Needs Better Syntax and Macros, an article by Andrey Orst.