As some of you know, I’ve been writing a book (to be published by CRC Press/Chapman & Hall and released in late 2014) for the past year and a half. It’s one of those books that spans multiple disciplines so is both unique and also niche. In essence it’s a manifesto of sorts on using functional programming for mathematical modeling and analysis, which is based on my R package lambda.r. It spans the lambda calculus, traditional mathematical analysis, and set theory to 1) develop a mathematical model for the R language, and 2) show how to use this formalism to prove the equivalence of programs to their underlying model. I try to keep the book focused on applications, so I discuss financial trading systems, some NLP/document classification, and also web analytics.
The book started off as a more practical affair, but one thing that I’ve learned through this process is how to push ideas to the limit. So now it delves into quite a bit of theory, which makes it a more compelling read. In some ways it reminds me of ice climbing, where you’re scaling a waterfall and really pushing yourself in ways you didn’t think possible. Three chapters into the process, and it’s been that same combination of exhilarating challenge that results in conflicting thoughts racing through your head: “Holy crap — what am I doing?!” versus “This is so fun — wheeeee!” versus “I can’t believe I did it!”
That said, this book pushes some new territory. Many of the ideas are experimental and provisional. The proofs probably could use some work. So in the spirit of openness I’m looking to share my thoughts and get feedback from the general community on the ideas within the pages. Issues I already know about include:
- Images need to be cleaned up. Some are in color, others need to be scaled
- Some proofs are incomplete. Their absence shouldn’t impact the content
- Some examples need to be completed. Again, it shouldn’t impact the overall reading of the material.
Read the draft: Rowe – Modeling data with functional programming. Any comments are greatly appreciated.