Synopses & Reviews
Why learn F#? With this guide, youll learn how this multi-paradigm language not only offers you an enormous productivity boost through functional programming, but also lets you develop applications using your existing object-oriented and imperative programming skills. Youll quickly discover the many advantages of the language, including access to all the great tools and libraries of the .NET platform.
Reap the benefits of functional programming for your next project, whether youre writing concurrent code, or building data- or math-intensive applications. With this comprehensive book, former F# team member Chris Smith gives you a head start on the fundamentals and walks you through advanced concepts of the F# language.
- Learn F#s unique characteristics for building applications
- Gain a solid understanding of F#s core syntax, including object-oriented and imperative styles
- Make your object-oriented code better by applying functional programming patterns
- Use advanced functional techniques, such as tail-recursion and computation expressions
- Take advantage of multi-core processors with asynchronous workflows and parallel programming
- Use new type providers for interacting with web services and information-rich environments
- Learn how well F# works as a scripting language
Why learn F#? This multiparadigm language not only offers you an enormous productivity boost through functional programming, it also lets you develop applications using your existing object-oriented and imperative programming skills. With Programming F#3.0, youll quickly discover the many advantages of this Microsoft language, which includes access to all the great tools and libraries of the .NET platform.
Learn how to reap the benefits of functional programming for your next project - whether its quantitative computing, large-scale data exploration, or even a pursuit of your own. With this comprehensive guide, F# former team member Chris Smith gives you a head start of the fundamentals and advanced concepts of the F# language.
- Get a clear understanding of functional programming, and how you can use it to simplify code
- Learn the language's core syntax, including object-oriented and imperative styles
- Simplify concurrent and parallel programming with F# Asynchronous Workflows and the Parallel Extensions to .NET
- Discover the power of F# 3.0's new Info Rich Programming and LINQ Queries
About the Author
Chris Smith works at Microsoft on the F# team. His role as a software design engineer in test gives him a unique mastery of the F# language. Chris has a masters degree in computer science from the University of Washington.
You can read his blog, Chris Smith's Complete Unique View, at http://blogs.msdn.com/chrsmith/.
Table of Contents
Preface; Introducing F#; Who This Book Is For; What You Need to Get Going; How the Book Is Organized; ; Conventions Used in This Book; Using Code Examples; Safari® Books Online; I'd Like to Hear from You; Acknowledgments; Multiparadigm Programming; Chapter 1: Introduction to F#; 1.1 Getting to Know F#; 1.2 Visual Studio 11; 1.3 F# Interactive; 1.4 Managing F# Source Files; Chapter 2: Fundamentals; 2.1 Primitive Types; 2.2 Comparison and Equality; 2.3 Functions; 2.4 Core Types; 2.5 Organizing F# Code; Chapter 3: Functional Programming; 3.1 Understanding Functions; 3.2 Pattern Matching; 3.3 Discriminated Unions; 3.4 Records; 3.5 Lazy Evaluation; 3.6 Sequences; 3.7 Queries; Chapter 4: Imperative Programming; 4.1 Understanding Memory in .NET; 4.2 Changing Values; 4.3 Units of Measure; 4.4 Arrays; 4.5 Mutable Collection Types; 4.6 Looping Constructs; 4.7 Exceptions; Chapter 5: Object-Oriented Programming; 5.1 Programming with Objects; 5.2 Understanding System.Object; 5.3 Understanding Classes; 5.4 Methods and Properties; 5.5 Inheritance; Chapter 6: .NET Programming; 6.1 The .NET Platform; 6.2 Interfaces; 6.3 Object Expressions; 6.4 Extension Methods; 6.5 Extending Modules; 6.6 Enumerations; 6.7 Structs; Programming F#; Chapter 7: Applied Functional Programming; 7.1 Active Patterns; 7.2 Using Modules; 7.3 Mastering Lists; 7.4 Tail Recursion; 7.5 Programming with Functions; 7.6 Functional Patterns; 7.7 Functional Data Structures; Chapter 8: Applied Object-Oriented Programming; 8.1 Operators; 8.2 Generic Type Constraints; 8.3 Delegates and Events; 8.4 Events; Chapter 9: Asynchronous and Parallel Programming; 9.1 Working with Threads; 9.2 Asynchronous Programming; 9.3 Asynchronous Workflows; 9.4 Parallel Programming; 9.5 Task Parallel Library; Chapter 10: Scripting; 10.1 F# Script Files; 10.2 Directives; 10.3 F# Script Recipes; Chapter 11: Data Processing; 11.1 Indexing; 11.2 Querying; Extending the F# Language; Chapter 12: Reflection; 12.1 Attributes; 12.2 Type Reflection; 12.3 Dynamic Instantiation; 12.4 Using Reflection; Chapter 13: Computation Expressions; 13.1 Toward Computation Expressions; 13.2 Computation Expression Builders; 13.3 Custom Computation Expression Builders; Chapter 14: Quotations; 14.1 Quotation Basics; 14.2 Generating Quotation Expressions; Chapter 15: Type Providers; 15.1 Typed Data Versus Typed Languages; 15.2 Type Providers; Appendixes; Overview of .NET Libraries; Visualization; Data Processing; Storing Data; F# Interop; .NET Interop; Unmanaged Interop; Colophon;