F# is a mature, open-source functional-first language that's rapidly growing in popularity both inside and outside the .NET ecosystem. And while F# runs on the .NET framework and supports OO features, its functional nature is what's driving interest. F# leads to quicker development time and a lower total cost of ownership. Its powerful feature set allows developers to more succinctly express their intent, and encourages best practices - leading to higher quality deliverables in less time. Developers find working in F# more enjoyable and rewarding; their managers appreciate the improved quality and speed of deliverables!
Learn F# is a practical guide for experienced C# and .NET developers that teaches the F# language, tools, techniques, and practices that can be applied in common scenarios. You'll start with F# language basics and best development practices. You'll also learn the core set of FP techniques in F#, and why to use them. Then you'll discover how to write idiomatic F# code on the .NET framework in Visual Studio, and what tools to use to give you the best experience within VS. The second part of the book shows you how to apply F# in larger, real world scenarios, things like interop to C# /VB projects, SQL database access, web programming, and unit testing. By the end of the book, you'll be able to use F# in your day-to-day development, and know how and where to deepen your knowledge.
Disclaimer: this is the review of MEAP version - all chapters are already in place, some appendixes are missing & book clearly needs A LOT of editing. It feels visibly more "rough" & "unbaked" than majority of MEAPs at this stage.
I was never really a big fan of F#. Maybe just because it's one of very few languages I've started to use without reading a decent intro book first - I've just sit down & started scribbling one day: not really my way of doing stuff. Additionally, I'm not an advocate of hybrid OO & FP languages (like Scala or F#) - there's nothing wrong in having freedom of working out your own mixed style, but reality can be really brutal & I've seen what rough pragmatism can do to idealistic beliefs of over-enthusiastic engineers.
Nevertheless ... Let's get back to the book itself. It's good. It's surprisingly good. Why? Because it tries to teach you IDIOMATIC F#. It doesn't try to cover everything, it doesn't care about .NET platform itself, neither various types of products one can make. Nope. Nothing of that kind. What's even more cool, it doesn't try to teach you what's variable or namespace. What it does instead it telling you (by example) "the way of F#" -> the concepts & principles that belong to the foundation of F# language. It worked quite well in my case - I was thinking about the F# code "out of the C# box" - maybe even for the first time.
What did I like most? Not the "usual suspects" (Type Providers, Type Providers, enough of Type Providers! The same for pipelines & REPL), but a decent intro into F# collections, great chapter on modelling relationships (a lot of new stuff for me), really good chapter on Options, short (but good) intro to Paket.
What didn't I like? Capstone chapters failed to catch my interest. Testing chapters felt too brief (especially FsCheck) - but there were some very good remarks, e.g. about TDD or mocking in F# & whether it makes sense or not.
What can I say more? It's a really good book. Most likely you'll do better by grabbing Don Syme's one first (Expert F#), but this one has one big advantage - it's not complete by any means, but it's idiomatic to the bone, which makes it more likely to ignite the love to the F# in the reader. Did it work that way in my case? ... Well, no, it didn't :) I'm still deeply in love with Elixir, but since today I respect F# significantly more :)
I very much enjoyed the writing style and the project based approach used, wherein every 4-5 chapters, you stop to do a small "capstone project" in which you combine what you learned in the previous chapter to approach a small application and reinforce your understanding about language features.
Also liked the problem to solution presentation of many of the features in here.
Overall one of the nicest programming books I've read.
Excellent, introductive book into F# world. I love the idea of capstones which help dig into a new language and understand the different approaches to solving the same problems.
I planned to only skim over this book because I consider myself seasoned F#/functional developer but it immediately grabbed my attention. I love how it teaches functional yet pragmatic thinking and shows best parts of F#. It's not easy task to write introductory book that's not boring and doesn't fall into tutorial style. I learned a few new tricks but what's more important author managed to "smuggle" very good insights about F#/functional way of doing things. Highly recommended!
It's an excellent book for someone who wants to start writing programs in F# or in another functional language. It does not only teach you F# but also passes to you the thinking model, of how to write programs in functional languages. Don't expect to go deep here. It has the right content to give you a good base.
An outstanding book that provides a comprehensive and accessible introduction to the F# programming language. It provides practical examples and exercises, and by the end of the book, you’ll have a solid foundation in F# and be ready to apply it to your own projects.
One of the best books to start with F#. But the problem could be that language moved ahead and some of code examples will not work in the latest versions (like a SQL Type Provider, but you know - TP in F# are a painful theme).
But I recommend to read this book to everyone, who want to find a structured way through this beautiful language