Concurrency and parallelism are concepts that we make use of every day off of the computer. I give some real world examples and we analyze them for concurrency and parallelism.
Research shows that developing mastery of a large skill is best done by mastering smaller skills that you can achieve 90% accuracy in very quickly. LispCast Introduction to Clojure has broken the skills you need down for you.
Much of the difficulty of learning a new language is caused by knowing more than you are comfortable doing. It’s so important to get started practicing real programming as soon as possible.
LispCast Introduction to Clojure teaches Clojure with an “interactive bakery simulation”. The reason is that metaphors that you can embody are a great way to learn abstract things like programming.
Macros are one of the most talked about features of Lisp. They are a powerful way to extend the language without modifying the compiler.
Functional programmers often use the term “reason about code”. It’s not very well defined generally, but I use it myself to refer to our ability to use our real-world intuition in our own code.
Immutable data appear to contradict our observations of the real world. Things in the world are mutable, so shouldn’t our data be mutable, too? It may be counterintuitive, but immutable data does a better job of modeling many of our expectations of the real world.
Composition is an important idea in programming, and Functional Programming brings it to the forefront. But what does it mean to say things are composable?
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.