acknowledgments

The “butterfly effect,” a term coined by Edward Lorenz, is based in chaos theory: the idea is that a seemingly minor event such as a flap of butterfly’s wings somewhere in Asia can cause a major event such as a hurricane in South America. (The butterfly flapping its wings has been constant in the concept, but the location [Asia or Brazil] and the result [hurricane or tornado] have varied.) This alone would be enough to say that there were many more people (and butterflies), without whom this book would not exist than I can possibly list here. And even if I didn’t believe in chaos theory, the number of people I’d want to mention in this section would be enormous.

I would never have become interested in F# and functional programming if I hadn’t met Don Syme. Don was my mentor during two internships at Microsoft Research and it was a great pleasure to work with him and participate in long discussions about F# (and life, the universe, and everything else). I’m also grateful to James Margetson from Microsoft Research who taught me many cool functional programming tricks. However, I’d never have met Don and James if I hadn’t gained status as an MVP by Microsoft and met Luke Hoban who introduced me to Don later. If I were to continue like this, I’d end up mentioning Michal Bláha, Jan Stoklasa, Božena Mannová, the authors of CodeProject.com, and many others.

The book wouldn’t exist without Mike Stephens from Manning who first contacted me, and without Harry Pierson without whose initial involvement we’d never have started working on it. Even though we only worked together briefly, Harry’s participation was very important and encouraging.

Now that I’ve mentioned people without whom the book would never have started, it’s also a time to mention those, without whom it would never have been finished.

I’m very grateful to my coauthor Jon for helping me through the long process of turning the initial drafts and sketches into a real book. Jon is also the person to thank if you feel like this book was written exactly for you, because he carefully adjusted everything to be in the right form for our audience. Finally, Jon is a wonderful person to work with, so it was a pleasure to discuss the book with him both online and briefly in person.

At this point, I’d like to mention everyone from Manning who contributed to this book. I already mentioned Mike Stephens who was always helpful in difficult moments. Nermina Miller and Tara McGoldrick Walsh guided me through the everyday jungle of the writing process and Mary Piergies, with Liz Welch and Elizabeth Martin, helped me to find the way out of this jungle to a clear light. I briefly worked with many other great folks at Manning including Gabriel Dobrescu, Steven Hong, Dottie Marsico, Christina Rudloff, Gordan Salinovic, Maureen Spencer, and Karen Tegtmeyer. I would also like to thank publisher Marjan Bace, who provided numerous useful insights.

Folks from Manning also had a lucky hand picking people for the reviews at various points in the writing process. We received a large number of comments, suggestions, and hints, but also exactly the right amount of positive feedback that encouraged me to take as many of these suggestions as possible into account. Aside from our anonymous reviewers, I’d like to thank our two technical reviewers, Matthew Podwysocki and Michael Giagnocavo. I had the role of a technical reviewer in the past, so I can appreciate your hard work! And special thanks to Mads Torgersen, who wrote the foreword

Another group who provided valuable input are readers of the early drafts. First of all, my colleagues Jan Stoklasa and René Stein, but also those who purchased the book through the Manning Early Access Program and shared their feedback in the forums (Dave Novick, Peer Reynders, Vladimir Kelman, and Michiel Borkent to name a few). Other reviewers who had a hand in making this book what it is are Marius Bancila, Freedom Dumlao, Eric Swanson, Walter Myers, Keith J. Farmer, Adam Tacy, Marc Gravell, Jim Wooley, Alessandro Gallo, Lester Lobo, Massimo Perga, Andrew Siemer, Austin Ziegler, Dave McMahon, Jason Jung, Joshua Gan, Keith Hill, Mark Needham, Mark Ryall, Mark Seemann, Paul King, and Stuart Caborn.

I’d, of course, like to thank my friends and my family. To those who don’t know them, their question, “When is your book finally going to be finished?” may not sound particularly supportive, but I know them well and I honestly appreciated their encouragement. Last, but not least, I’m grateful to my dearest Evelina, who not only provided invaluable moral support, but also was so kind as to read and review large portions of the manuscript.

Tomas Petricek

I would primarily like to thank Tomas and everyone at Manning for giving me the opportunity to be part of this book. Being a small part of a bigger goal is always interesting, and it’s been great fun learning about functional programming “from” a book and “into” a book at the same time. I can only hope that the minor contributions I’ve made will be useful—I’ve primarily acted as the voice of a passionate but ignorant reader (and C# enthusiast of course), so in some ways the book you’re reading now is tailored toward teaching me functional programming. That in itself is a gift to be grateful for. Tomas has thanked all the editors and other staff at Manning, and I’d like to echo those thanks.

My children are still too young to be programming, and my wife is too...well, normal, basically—but they’ve always been there for me when higher-order functions have burst my brain. I’ve been struggling to stay sane and work on more than one book at a time, whereas my wife (who writes children’s fiction) seems perpetually up to her ears in proposals, chapter breakdowns, first drafts, copy edits, proofs, and delivered manuscripts, all for different titles and even publishers. Beyond that, she’s married to me—how she stays sane is anyone’s guess. However, I’m very glad that she does, and I’d like to thank her for being who she is. Tom, Robin, and William show great promise in their love of technology, but it’s their smiles and cuddles when I get home from work for which I’m most grateful.

Finally, I’d like to thank all my English teachers, especially Simon Howells. The more I learn about programming languages, the more I believe that the language a software engineer should pay most attention to is the one he uses to communicate with people, not computers. Simon Howells is as passionate about language and literature as I am about computing, and that passion rubs off on his students. It is highly unlikely that he’ll ever read a word I’ve written, but his teaching will be with me for the rest of my life.

Jon Skeet