functional programming

Recently-added Scala cheat sheets, tutorials, syntax, and examples alvin June 17, 2018 - 6:10pm

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:

A “thank you” regarding sales of Functional Programming, Simplified alvin May 7, 2018 - 12:29pm

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.

Functional Programming, Simplified

What is the value of learning lambda calculus?

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).”

Understanding how the Y-Combinator works

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.”

Scala/FP: I can’t believe I used a var

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

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.