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
You want increased customer satisfaction, faster development cycles, and less wasted work. Domain-driven design (DDD) combined with functional programming is the innovative combo that will get you there. In this pragmatic, down-to-earth guide, you’ll see how applying the core principles of functional programming can result in software designs that model real-world requirements both elegantly and concisely—often more so than an object-oriented approach. Practical examples in the open-source F# functional language, and examples from familiar business domains, show you how to apply these techniques to build software that is business-focused, flexible, and high quality.
“Tackle Software Complexity with Domain-Driven Design and F#”
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
Basics of coding in F#, and how functional programming differs from object-oriented programming.
How is composition different from an OO approach, and how to use it in practice?
Creating API for turtle graphics in 13 different functional ways .
FP patterns, from the basics of partial application all the way to monads and monoids.
Using F# for the boring things: testing, build scripts and documentation
How types in F# changed the way I think about TDD and software development.
Everything you ever wanted to know about F# as a C# dev, but were afraid to ask.
Using simple functional concepts to build powerful DSLs for fun and profit.
Using the F# types to make invalid states unrepresentable (and your code correct).
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.
Learn how deep neural networks work and how to use CNTK from F#!
What if you could look at the source code behind any online visualization?
Building open data visualization platform with F# and Fable.
Kaggle case study on how "doing machine learning" workflow looks like.
Using BigDeedle, FsLab and MBrace to understand UK housing crisis.
From explorative REPL to the cloud, using MBrace and the power of F#.
Solving the traveling salesman problem using MBrace and Azure.
Why choose F# if you are doing machine learning on .NET.
Using type providers for JSON, CSV and XML for data analytics.
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.
This is your chance to get ahead of the curve to serverless nano-services using Azure Functions.
Code-focused deep-dive into how different asynchronous programming abstractions work.
Reactive web programming with New Year tweets as the data source.
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.
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
Domain modelling with F#. No jargon, no maths, and no prior F# experience necessary!
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?
What makes F# great for implementing high-performance trading systems.
Functional approach to error handling, input validation, logging and other annoyances.
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.
What if 'function' in 'functional programming' referred to modernist design principles?
Live coding session showing how to write a spreadsheet from scartch
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 applications 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!