typelevel.org has a nice article on shared state in functional programming.
As I try to organize things a bit around here, here’s a list of some tutorials I’ve written lately about the Scala collections classes:
As a brief note this morning, I’d just like to offer a “thank you” to the people who have purchased my new book, Functional Programming, Simplified, as sales have certainly exceeded my expectations. I first offered the idea to the people at O’Reilly, and when they turned it down I was concerned that maybe they knew something I didn’t. But sales and feedback have all been very positive, so thank you for that.
Here’s a page from my functional programming book about why pure function signatures are much more important than impure method signatures.
When asked, “What is the value of learning lambda calculus,” Gary Bernhardt replied, “My favorite reason to learn a bit about the lambda calculus: it shows us 1) how simple computation is (at first it seems too simple to compute anything ‘real’); and 2) all of our programming complexity is invented by us (for reasons both good and bad).”
I haven’t watched this video from Ruby Conf 2012 by Jim Weirich yet, but if you’re interested in learning about functional programming only for the sake of learning, here’s the description: “One of the deepest mysteries in the functional programming world is the Y-Combinator. Many have heard of it, but few have mastered its mysteries. Although fairly useless in real world software, understanding how the Y-Combinator works and why it is important gives the student an important insight into the nature of functional programming.”
When you look at Functional Programming, Simplified on a dolly, it’s not that big. ;)
Various pieces of interesting news of late:
- A video of how Sinclair Broadcasting is controlling local news stations
- Mark Zuckerberg responds to Tim Cook’s “glib” criticism
- The “Play Framework 3” roadmap
- Walmart-Humana sounds wild, but makes sense
- Flip is a Scala library for “pure-functional information theory and probability distribution”
On a personal note, sales of Functional Programming, Simplified have already exceeded my expectations. (Thank you!)
As part of the illness stuff I went through in 2014-2016, I have absolutely no memory of creating this Scala/FP “I can’t believe I used a
var” image, but as I just ran across it while working on this website, I thought it was funny. Apparently I created it when I was writing about How to create outlined text using Gimp. (I do remember that someone else created an image of Martin Odersky with the same phrase.)
The “three principles of functional programming,” from this tweet:
1. Orthogonal composability
2. Maximum polymorphism
3. Maximum deferment
The “three pillars of functional programming,” from Functional and Reactive Domain Modeling:
1. Referential transparency
2. Substitution model
3. Equational reasoning
When I learned OOP I saw that it was based on several principles that everyone agrees upon. When I started learning FP (and later took two years to write Functional Programming, Simplified) I was surprised there wasn’t a single accepted definition of functional programming. I ran across the principles/pillars in the last two days and was reminded of that again.