Global mutable state is one of the biggest drivers of complexity in software systems. We tackle a definition and how to reduce our reliance on it.
Functional programming, from one perspective, is just a collection of habits that affect our programming. I’ve identified the cues for those habits and a routine for replacing imperative code with functional code.
If you’re a Rubyist and you’ve heard some buzz about Clojure, these videos and links will be just for you. Rubyists teaching Clojure, Clojurists introducing Clojure to Ruby programmers, and Rubyists pontificating on Clojure.
Professional Clojure programmers rely on certain features of their editors to help them program. When choosing an editor, it’s important to pick one that has these two important features: REPL integration and structural editing.
I’ve made some cheatsheets to help me learn clj-refactor, some Emacs software that helps you make systematic changes to code.
React is a view library for web pages that makes DOM rendering in a functional style really easy. React makes web programming fun again.
ClojureScript optimizes names by replacing them with shorter ones. Usually, that’s a good thing. But it can get carried away. Externs are how you help it know what’s unsafe to optimize.
Computer Science has ideas that are important to the broader world. The most important is the Universal Turing Machine. From one perspective, Lisp embodies the idea at its core. To really understand how, I ask you to implement your own Lisp interpreter.
Learning to write map is a good lesson because it has recursion, list building, and higher order functions. It’s everything that makes Lisp great.