F# 6 Fundamentals
This course will teach you the fundamentals of programming with F#, the .NET platform’s functional programming language which allows you to focus on your problem domain rather than the details of programming.
What you'll learn
You'll learn the basics of the F# language as well as get an introduction to important concepts of functional programming. In this course, F# 6 Fundamentals, you’ll learn the fundamentals of F# application development. First, you’ll explore how to represent data in F# and create functions to work with that data, including function pipelines, composite functions, and injecting function dependencies. Next, you’ll discover how to work with collections of data in a functional manner instead of using complex and troublesome imperative code. Finally, you’ll learn how to functionally model relationships in data using discriminated unions and options. When you’re finished with this course, you’ll have the skills and knowledge of F# 6 needed to build real F# based applications.
Table of contents
- Module Introduction 5m
- Hello F# 6m
- F# Tools 3m
- Demo: Configure a Windows F# Development Environment 5m
- Demo: Configure an Ubuntu F# Development Environment 5m
- F# and the .NET CLI 8m
- Demo: Create and Run an F# Console App Using the .NET CLI 4m
- Demo: Create and Run an F# Console App Using Visual Studio Code 5m
- Demo: Debug an F# Console App Using Visual Studio Code 4m
- Demo: Using F# Interactive within Visual Studio Code 3m
- Summary 2m
- Module Introduction 2m
- Four Key Concepts of F# 6m
- Entry Points and Command Line Arguments 5m
- Console Input and Output 5m
- Essential F# Syntax 10m
- F# and .NET Data Types 9m
- Strings 5m
- Unit 2m
- Generics 4m
- Type Inference 5m
- Type Conversion 2m
- Expressions 6m
- Let Bindings 6m
- Demo: Creating the Base of the Application 3m
- Scopes 7m
- Use and Do Bindings 3m
- Summary 2m
- Module Introduction 1m
- Iteration 8m
- Conditional Expressions 6m
- Demo: User Input Loops and Command Processing 3m
- Demo: Adding an Account Balance 5m
- Match Expressions 8m
- Exceptions 6m
- Modules 9m
- Namespaces 6m
- Module Design Patterns 8m
- Ordering of Code and Files 5m
- Demo: Adding Interaction Modularity 4m
- Access Control 3m
- Module Access 3m
- Summary 1m
- Module Introduction 1m
- What Are Functions? 5m
- Creating and Using Functions 10m
- Prefix and Infix Functions 4m
- Lambda Expressions 3m
- Function Application 5m
- Currying 4m
- Partial Application 7m
- Function Composition 5m
- Pipelines 7m
- Recursion 9m
- Tail Recursion 7m
- Demo: Removing Mutable State and Imperative Loops 3m
- Higher Order Functions 7m
- Summary 3m
- Module Introduction 2m
- Tuples 7m
- Records 8m
- Demo: Creating a Domain Model and Module 4m
- Demo: Adding a Business Rules Module 3m
- Discriminated Unions 8m
- Options 6m
- Options Motivation 9m
- Results 11m
- Demo: Handling Parsing Errors with Result Options 4m
- Demo: Persistence with a JSON Based Repository 9m
- Units of Measure 8m
- Classes 7m
- Interfaces 6m
- Object Expressions 3m
- Summary 2m