A funny thing about writing books, or at least writing books with O’Reilly in 2013, is that I never received a final copy of the Scala Cookbook in PDF format. Fortunately I have the original Word docs, which is what they used at the time, so I carry those around on my laptop.
Over time I’ve discovered a number of things that I have no memory of from the years 2014 to 2016, when I was at my sickest with the mast cell disease. Apparently I created this image and wrote these words on August 24, 2015.
I’ll guess that nobody in the U.S. Congress has read it, but the Scala Cookbook is in the Library of Congress, which is kinda cool.
I doubt that most people know it, but authors always enjoy receiving letters of “thanks” like this one. Writing is often a lonely, solitary business, and to hear that your work has helped other people is always satisfying. If there’s a book you’ve read that you really enjoyed, I encourage you to write the author a brief letter of thanks. They’ll appreciate it more than you’ll know.
I'm sitting at Panera Bread, reviewing the first two chapters of the Scala Cookbook. Chapter 1 sucks, someone’s gonna have to do something about that. Chapter 2 isn’t too bad.
A lesson learned from writing the Scala Cookbook: It’s fun and interesting to work with some professional writers in the editing process, and it’s great to get their feedback. But you also have to be willing to duke it out to keep what’s important. It’s your baby, it’s your name on the front cover.
Problem: You want to eliminate repetitively passing variables into a Scala function by (a) passing common variables into the function to (b) create a new function that’s pre-loaded with those values, and then (c) use the new function, passing it only the unique variables it needs.
Solution: The classic example of a partially applied function begins with a simple
Problem: You want to define a Scala method that takes a function as a parameter, and that function may have one or more input parameters, and may also return a value.
Solution: Following the approach described in the previous recipe, define a method that takes a function as a parameter. Specify the function signature you expect to receive, and then execute that function inside the body of the method.
If you’ve read any of my books (like the Scala Cookbook or Functional Programming, Simplified), and thought, “Hey, I can write a book,” I encourage you to do so. One book that has been helpful in my writing career is William Zinsser’s On Writing Well: The Classic Guide to Writing Nonfiction. If you’re seriously thinking about writing a book about programming or any other technical topic, it’s a good read.