Are you just getting started with functional programming? Or are you interested in using it in practice for web, development, enterprise applications, finance or data science? Here, you'll find our books and high-quality recordings of our talks.
Functional programming languages are good at expressing complex ideas in a succinct, declarative way. Functional concepts such as "immutability" and "function values" make it easier to reason about code - as well as helping with concurrency. F#, LINQ, and numerous .NET libraries now bring the power of functional programming to .NET coders.
Materials in this section teach the ideas and techniques of functional programming applied to real-world problems. You'll see how the functional way of thinking changes the game for .NET developers.
Written by Tomas Petricek with Jon Skeet, this best-selling tutorial teaches the ideas and techniques of functional programming applied to real-world problems. You'll see how the functional way of thinking changes the game for .NET developers. Then, you'll tackle common issues using a functional approach. The book will also teach you the basics of the F# language and extend your C# skills into the functional domain.
"You will never look at your code in the same way again."
from the foreword by Mads Torgersen, C# PM, Microsoft
The e-book version of Scott's fsharpforfunandprofit.com web site. Perfect if you want to browse the site offline while commuting or on a flight. The site (and this book) aims to introduce you to F# and show you ways that F# can help in day-to-day development of mainstream commercial business software. On the way, I hope to open your mind to the joys of functional programming - it really is fun!
"The best teacher there is of functional programming concepts"
Larry O'Brien, founding editor of Software Development magazine
Everything you ever wanted to know about F# as a C# dev, but were afraid to ask.
How types in F# changed the way I think about TDD and software development.
Using the F# types to make invalid states unrepresentable (and your code correct).
Using simple functional concepts to build powerful DSLs for fun and profit.
Using F# for the boring things: testing, build scripts and documentation.
Machine learning (ML) is becoming an extremely important topic and F# is the perfect tool for doing ML (not just) on the .NET platform. Books and talks in this category give you all the information you need to get started with using F# for data science and machine learning.
F# is a great fit for implementing your efficient own algorithms, but it can also access a wide range of powerful libraries including FsLab for data science, MBrace for extreme scalability and R through the R type provider.
The book shows you how to build smarter .NET applications that learn from data, using simple algorithms and techniques that can be applied to a wide range of real-world problems. You'll code each project in the familiar setting of Visual Studio, while the machine learning logic uses F#, a language ideally suited to machine learning applications in .NET. If you're new to F#, this book will give you everything you need to get started. If you're already familiar with F#, this is your chance to put the language into action in an exciting new context.
"Awesome read! The book explains ML concepts in a very easy and compelling manner, with great and well explained codes samples." Amazon review by Terrell Bryonyq
In this report, F# contributor Tomas Petricek explains many of the key features of the F# language that make it a great tool for data science and machine learning. Real world examples take you through the entire data science workflow with F#, from data access and analysis to presenting the results.
You'll learn about how F# and its unique features ease the chore of data access, the process of data analysis and visualization, using Deedle, R type provider and XPlot and finally, implementations for a clustering algorithm using the standard F# library and how the F# type inference helps you understand your code.
Why choose F# if you are doing machine learning on .NET.
Solving the traveling salesman problem using MBrace and Azure.
Using type providers for JSON, CSV and XML for data analytics.
From explorative REPL to the cloud, using MBrace and the power of F#.
Using BigDeedle, FsLab and MBrace to understand UK housing crisis.
Kaggle case study on how "doing machine learning" workflow looks like.
One of the myths about F# is that it is only good for complex mathematics. This could not be further from truth. A web server is essentially a function from a request to a response and so functional programming is a perfect fit for it.
Talks in this category cover some of the most popular F# tools for doing web development including the functional cross-platform web server Suave, but you can also learn about building and hosting cloud-based services on Azure.
Building news site and chat using Suave, F#, type providers and agents.
Building a cloud-based service that reacts to tweets using F# compiler service.
Reactive web programming with New Year tweets as the data source.
F# is a great language for developing enterprise applications in various domains including retail, advertising, finance and many more. The functional-first nature of the F# language leads you towards the "happy path" of correctness and extensibility.
The materials in this section provide all you need to build the right functional architecture. You can watch Scott Wlaschin's amazing series of talks on functional patterns or explore a number of case studies of using F# in the industry.
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 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.
"Outstanding real-world examples that are sure to appeal to both the novice and expert."
Jeff Smith ITT Education Services
Functional approach to error handling, input validation, logging and other annoyances.
What makes F# great for implementing high-performance trading systems.
Using capabilities to design modular code that is easy to test and refactor.
Practical enterprise-ready functional development, demonstrated using Tic-Tac-Toe!
Which OOP patterns are still useful? And what are new patterns that apply to FP?
Do you want to learn more about functional programming and F#? Then the talks in this section are the place to explore! Learn about more advanced functional programming concepts (did we say monads?), techniques for choosing the right data structure, compilers, but also some of the powerful F# libraries like F# Formatting and the awesome tool for building presentations called FsReveal.
Warning! This talk contains gruesome topics, strained analogies, discussion of monads.
In this talk, Tomas describes how he built his slides using F#. As one does.
Compiler writers are often seen as the stuff of myth and legend. Unveil the reality!
Selecting appropriate data structures is key to your application's performance.
Implementing parser combinators from scratch and parsing JSON in 45 minutes.
Over the years, we had the pleasure of speaking at a number of conferences and working with several publishers. If you are interested in meeting in person, you'll often find us at events organized by our partners listed here. Are you interested in having fsharpWorks experts at your event? Drop us an email to discuss what we can do for you!