F# Fundamentals

Learn the fundamentals and the advantopices of .NET's only functional-first programming language.
Course info
Rating
(80)
Level
Beginner
Updated
Mar 10, 2016
Duration
5h 40m
Table of contents
Description
Course info
Rating
(80)
Level
Beginner
Updated
Mar 10, 2016
Duration
5h 40m
Description

F# continues the grand tradition of ML style functional programming languages, adding the power of the .NET runtime (CLR) and base class library. F# is an excellent general purpose language that extends the capabilities of C# with type providers, immutable data, structural equality, type inference, and a powerful type system. This course covers everything you need to get started with F# and functional programming.

About the author
About the author

Liam is a software developer, technologist and product delivery expert. He thinks a lot about how to manage software delivery projects and how to grow high performance teams.

More from the author
React Fundamentals
Intermediate
4h 13m
21 Jun 2018
Backbone.js Fundamentals
Intermediate
4h 42m
5 Sep 2012
CoffeeScript Fundamentals
Intermediate
1h 59m
12 Sep 2011
Section Introduction Transcripts
Section Introduction Transcripts

Introducing F#
Hi. Welcome to F# Fundamentals. I'm your host, Liam McLennan. This course will cover enough F# to demonstrate its power, and give you the ability to create realistic F# solutions. We will attempt to avoid the more advanced aspects of F#, so that this course doesn't go forever. Along the way, we will learn some functional programming, which is the real secret sauce of F#. The simple answer to the question, why should I care about F#, is because F# is the major functional programming language for the. NET platform.

Functions
In module 1, we took a brief tour of F#, but stayed at a very high level. Now let's dive a little deeper and talk about functions. Functions are the fundamental unit of F# programs, and function application, the act of applying a function to its arguments, is the fundamental operation. It turns out there are lots of things we can do with functions.

Data
F# has many ways of representing data. It starts by including the types from C# and VB. NET, but then extends the possibilities with a number of additional constructs. This module will look briefly at the primitive types available in F#, then some special types that F# makes available, before moving on to the various options for defining types of your own.

Organization and Control Flow
F# has a wide variety of simple mechanisms to group, organize, and control programs. These are not the shiny brooch or headline features of F#, but the solid foundations that help practitioners to produce clear, correct programs. There are projects to group code and settings and restrict dependencies, there are namespace and modules for organizing code by responsibility. There are visibility modifiers, exceptions, patterns for disposable components, pattern matching, and ways of interoperating with C#. All of these will be explored in this module.

Types
In previous modules, we have investigated F#'s type system, and a variety of ways in which it allows the programmer to define their own types from simple tuples to record and discriminated unions. We have also looked at some of the useful collection types like List and Array. This module completes the picture by covering off some of the other useful built-in types.

Web Programming
As a general-purpose programming language, F# is useful for many different types of programming tasks. Some would say that its strongest use cases are data-oriented programming and things such as console applications or processing messages off a queue. One very important class of applications is web applications. This module will explore the evolving possibilities for web programming with F#.