PurelyFunctional.tv Newsletter 221: Trampolines, Typing, and Feeling Good

Sign up for weekly Clojure tips, software design, and a Clojure coding challenge.

Issue 221 - April 17, 2017

Hi Clojurers,

Please enjoy the issue.

Rock on!
Eric Normand <eric@purelyfunctional.tv>

PS Want to get this in your email? Subscribe!

On Recursion, Continuations and Trampolines

A nice walkthrough of Continuation Passing Style in multiple languages.

Typing the Technical Interview

Aphyr has written three short stories featuring magical beings working through a technical interview (1, 2, 3). The problems are obviously well-beneath the candidates' skills, and their solutions are over the heads of the interviewers.

I like this format. It insults the technical interview and condescends the interviewers, but not by showing how impractical they are. Instead, the candidates are using completely impractical techniques, but they are overblown and mystical. In the one I linked to above, the candidate uses Haskell's type system as a logic programming system to solve the Eight Queens Puzzle. The mystical setting allows the author to enlighten his readers with approaches to solving problems that would otherwise be dismissed in our current climate of hyper-practicality.

Descriptive Variables Names: A Code Smell

I'm really digging John De Goes' post about the danger of descriptive variable names. I have heard many times that functional programming is all about data transformation. And while that's not an untrue statement, it indicates that the speaker is at a specific stage in their development as a functional programmer. We want to be building reusable higher-order functions and modeling our systems with algebras. The examples in this article are in Haskell, but the principle applies equally well in Clojure.

Your App Is Good And You Should Feel Good

A wonderful slide deck with transcript about why people complain on the internet and why you should feel good about your work, despite complaints. It touches on modern Psychology and 90s pop culture.

Techniques for Efficiently Learning Programming Languages

Good advice from Daniel Higginbotham about how to learn programming languages.

Power to the (Mobile) People: Clojure and GraphQL YouTube

Howard Lewis Ship explains the reasons to use GraphQL and presents Walmart's GraphQL implementation in Clojure, called Lacinia.

With Great Composition Comes Great Responsibility YouTube

Elizabeth Engelman dives deep into Datomic queries, how best to structure entities, and refactoring queries to be useful over the evolution of your software.