* Explore the advanced concurrency support in F# and .NET TPL
* Covers major optimization techniques in F# to improve the performance of applications
* Use Struct, Class and Record model, Interop with C# and VB without sacrificing performance.
F# is a functional programming more » language and is used in enterprise applications that demand high performance. It has its own unique trait: it is a functional programming language and has OOP support at the same time.
This book will help you make F# applications run faster with examples you can easily break down and take into your own work. You will be able to assess the performance of the program and identify bottlenecks.
Beginning with a gentle overview of concurrency features in F#, you will get to know the advanced topics of concurrency optimizations in F#, such as F# message passing agent of MailboxProcessor and further interoperation with .NET TPL. Based on this knowledge, you will be able to enhance the performance optimizations when implementing and using other F# language features.
The book also covers optimization techniques by using F# best practices and F# libraries. You will learn how the concepts of concurrency and parallel programming will help in improving the performance. With this, you would be able to take advantage of multi-core processors and track memory leaks, root causes, and CPU issues.
Finally, you will be able to test their applications to achieve scalability.
WHAT YOU WILL LEARN
* Understand how the execution of functions in F# works
* Identify common performance bottlenecks
* Implement best practices to optimize performance
* Use the available tooling to help measure performance
* Combine the best practice of asynchronous and synchronous
* Optimize further using various F# language constructs
ABOUT THE AUTHOR
Eriawan Kusumawardhono is a veteran senior software development engineer (SDE) who has software development experience of more than 13 years, with 11 years of having developed in .NET, since the introduction of Visual Studio 2003. On usual working day he works at Allegro Development, a software development company, and in his spare time, he does speaking and training for software development and programming language communities in Indonesia. He is also a member of F# Foundation speaker program. He enjoys being a full-time technical polyglot software developer, mingling both OOP and functional programming at the same time.
He currently holds a Microsoft MVP award in Visual Studio development platform competency, from 2011 to 2017, for more than 5 consecutive years.
He lives in Jakarta with his wife, enjoying reading and cooking heterogeneous exotic food in Indonesia.
TABLE OF CONTENTS
1. Performing Common Optimizations in F#
2. Performance Measurement
3. Optimizing Data Structures
4. Introduction to Concurrency in F#
5. Advanced Concurrency Support in F#
6. Optimizing Type Provider
7. Language Features and Constructs Optimization
8. Optimizing Computation Expressions « less
This book is a great foundation for exploring functional-first programming and its role in the future of application development. The best-selling introduction to F#, now thoroughly updated to version 4.0, will help you learn the language and explore its new features.
F# 4.0 is a mature, open source, more » cross-platform, functional-first programming language which empowers users and organizations to tackle complex computing problems with simple, maintainable and robust code. F# is also a fully supported language in Visual Studio and Xamarin Studio. Other tools supporting F# development include Emacs, MonoDevelop, Atom, Visual Studio Code, Sublime Text, and Vim.
Beginning F#4.0 has been thoroughly updated to help you explore the new features of the language including:
* Type Providers
* Constructors as first-class functions
* Simplified use of mutable values
* Support for high-dimensional arrays
* Slicing syntax support for F# lists
Reviewed by Don Syme, the chief architect of F# at Microsoft Research, Beginning F#4.0 is a great foundation for exploring functional programming and its role in the future of application development. « less
Deliver high-quality, bug-free applications by testing them with efficient and expressive functional programming
Starting with an introduction to the concepts behind test automation, you will learn how to set up your test environment for unit testing and how to execute your test suite within and outside of Visual Studio. Using different test frameworks as MSTest, NUnit, and xUnit, you will learn how to write tests more » in isolation, create test doubles with Foq, and write expressive assertions with FsUnit.
You will learn techniques used to mock database contexts, test stored procedures, use migrations to test databases in isolation, control a web browser with Canopy, and test web services with F# interactive. You will learn how these techniques apply to Agile principles and discover how testing fits into your project. « less
F# Deep Dives presents a collection of real-world F# techniques, each written by expert practitioners. Each chapter presents a new use case where you'll read how the author used F# to solve a complex problem more effectively than would have been possible using a traditional approach. You'll more » not only see how a specific solution works in a specific domain, you'll also learn how F# developers approach problems, what concepts they use to solve them, and how they integrate F# into existing systems and environments.
About the Technology
F# is an elegant, cross-platform, functional-first programming language. With F#, developers create consistent and predictable programs that are easier to test and reuse, simpler to parallelize, and less prone to bugs. The language, its tooling, and the functional programming style have proven effective in many application areas like secure financial engines, machine learning algorithms, scientific calculations, collaborative web applications, games, and more.
About the Book
F# Deep Dives is a selection of real-world F# techniques written by expert practitioners. Each chapter presents an important use case where you'll solve a real programming challenge effectively using F# and the functional-first approach. Not only will you see how a specific solution works in a specific domain, but you'll also learn how functional programmers think about problems, how they solve them, and how they integrate F# into existing systems and environments.
Readers should have at least an introductory knowledge of the F# language.
* Numerical computing
* Data visualization
* Business logic
* Domain-specific languages
* Practical solutions to real problems
* Information-rich programming, including LINQ and F# type providers
* Covers F# 3.1 and VS 2013
About the Authors
Tomas Petricek contributed to the development of the F# language at Microsoft Research. Phil Trelford is an early adopter of F# and one of its most vocal advocates. They are joined by F# experts Chris Ballard, Keith Battocchi, Colin Bull, Chao-Jen Chen, Yan Cui, Johann Deneux, Kit Eason, Evelina Gabasova, Dmitry Morozov, and Don Syme.
Table of Contents
1. Succeeding with functional-first languages in the industry
2. PART 1 INTRODUCTION
3. Calculating cumulative binomial distributions
4. Parsing text-based languages
5. PART 2 DEVELOPING ANALYTICAL COMPONENTS
6. Numerical computing in the financial domain
7. Understanding social networks
8. Integrating stock data into the F# language
9. PART 3 DEVELOPING COMPLETE SYSTEMS
10. Developing rich user interfaces using the MVC pattern
11. Asynchronous and agent-based programming
12. Creating games using XNA
13. Building social web applications
14. PART 4 F# IN THE LARGER CONTEXT
15. F# in the enterprise
16. Software quality « less
Breaking Free with Managed Functional Programming
F# brings the power of functional - first programming to the .NET Framework, a platform for developing software in the Microsoft Windows ecosystem. If you're a traditional .NET developer used to C# and Visual Basic, discovering F# will be a revelation that will change how you code, and how you think more » about coding.
In The Book of F#, Microsoft MVP Dave Fancher shares his expertise and teaches you how to wield the power of F# to write succinct, reliable, and predictable code. As you learn to take advantage of features like default immutability, pipelining, type inference, and pattern matching, you'll be amazed at how efficient and elegant your code can be. « less
Expert F# 3.0 is about practical programming in a beautiful language that puts the power and elegance of data-rich functional programming into the hands of professional developers. In combination with .NET, F# achieves unrivaled levels of programmer productivity and program clarity.
F# isn't just more » another functional programming language. It's a general-purpose language ideal for solving real-world development problems. F# seamlessly integrates functional, imperative, object-oriented and query programming styles so you can flexibly and elegantly solve any programming problem. « less
A comprehensive guide for writing simple code to solve complex problems
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#, you'll quickly discover the many advantages of more » Microsoft's new language, which includes access to all the great tools and libraries of the .NET platofrm.
Learn how to reap the benefits of functional programming for your next project - whether it's 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. « less
Expert F# 2.0 is about practical programming in a beautiful language that puts the power and elegance of functional programming into the hands of professional developers. In combination with .NET, F# achieves unrivaled levels of programmer productivity and program clarity.
Discover the new functional language from Microsoft: F#
F# is a cutting-edge programming language that offers a number of new features and approaches, making software easier to writeÂparticularly that software that requires full use of multicore processors. This book shows you how to harness the more » power of F# and encompasses both the Microsoft .NET Framework and the Visual Studio 2010 toolset. You'll discover how F# 2.0 serves as a fusion of object-oriented and functional approaches and how this is useful for augmenting other .NET languages. Full of detailed explanations, this reference is key if you are writing new code for complex or multi-processor applications. « less