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
Please enjoy the issue.
PS Want to get this in your email? Subscribe!
A nice walkthrough of Continuation Passing Style in multiple languages.
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.
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.
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.
Good advice from Daniel Higginbotham about how to learn programming languages.
Howard Lewis Ship explains the reasons to use GraphQL and presents Walmart's GraphQL implementation in Clojure, called Lacinia.
Elizabeth Engelman dives deep into Datomic queries, how best to structure entities, and refactoring queries to be useful over the evolution of your software.