F# Training
F# Training
F# Training
  • Presentation
  • Fundamentals
    • Introduction
    • Syntax
      • Bases
      • Functions
      • Rules
      • Exceptions
    • First concepts
    • ๐Ÿ”Quiz
  • Functions
    • Signature
    • Concepts
    • Syntax
    • Standard functions
    • Operators
    • Addendum
    • ๐Ÿ”Quiz
    • ๐Ÿ“œSummary
  • Types
    • Overview
    • Tuples
    • Records
    • Unions
    • Enums
    • Anonymous records
    • Value types
    • ๐Ÿ“œRecap
    • Addendum
  • Monadic types
    • Intro
    • Option type
    • Result type
    • Smart constructor
    • ๐Ÿš€Computation expression (CE)
    • ๐Ÿš€CE theoretical basements
    • ๐Ÿ“œRecap
  • Pattern matching
    • Patterns
    • Match expression
    • Active patterns
    • ๐Ÿš€Fold function
    • ๐Ÿ“œRecap
    • ๐Ÿ•น๏ธExercises
  • Collections
    • Overview
    • Types
    • Common functions
    • Dedicated functions
    • ๐Ÿ”Quiz
    • ๐Ÿ“œRecap
  • Asynchronous programming
    • Asynchronous workflow
    • Interop with .NET TPL
    • ๐Ÿ“œRecap
  • Module and Namespace
    • Overview
    • Namespace
    • Module
    • ๐Ÿ”Quiz
    • ๐Ÿ“œRecap
  • Object-oriented
    • Introduction
    • Members
    • Type extensions
    • Class, Struct
    • Interface
    • Object expression
    • Recommendations
Powered by GitBook
On this page
  • Slides
  • Author
  • Why Fโ™ฏ
  • Convention
  • Target audience
  • Changelog
  • 2025-05-13
  • 2025-04-02

Was this helpful?

Edit on GitHub

Presentation

Fโ™ฏ Training, covering versions 5.0 to 9.0 (2021-2024)

NextIntroduction

Last updated 19 days ago

Was this helpful?

Slides

This git-book is here to supplement training sessions I've conducted using slides located in this repository:

  • Written in markdown with marp / marpit

  • Outputs available in HTML and PDF files

  • The theme can be customized: it's "just" CSS and PNG files.

Author

Romain DENEAU

  • Senior Developer Fโ™ฏ Cโ™ฏ TypeScript

Why Fโ™ฏ

In detail :

  • Multi-paradigm language with a strong functional orientation

    • Functional programming (FP) principles: immutability and composition

    • Building blocks: functions and algebraic data types (ADT)

  • "Fun" ! Very pleasant to write and read

    • Expressive and concise (not very verbose syntax)

    • Sensitive to indentation โ†’ easy to read

    • Strong static typing but it's almost seamless thanks to type inference

  • Language entreprise-friendly

    • Runs on the .NET platform โ†’ high performance, easy interop with C# projects, .NET ecosystem and libraries

    • Very good tooling: Visual Studio, VsCode, Rider

    • Robust code: predictable and reproducible results (immutability, structural equality, no nulls, exhaustive pattern matching)

    • Interactive programming: check code by evaluating it in the FSI console

    • Narrowed community but strong and friendly

  • Fโ™ฏ compared to other back-end functional languages

    • Its syntax is not hybrid, unlike Scala and Kotlin (mixing OOP and FP)

    • Easier to learn than Haskell or OCaml (but with fewer FP features, partially compensated for by OOP features)

    • Static typing, unlike Closure (and far fewer brackets ๐Ÿ˜œ)

Convention

๐Ÿ“ โ†’ concept addressed later, generally with the associated link

๐Ÿ’ฅ โ†’ compilation error or runtime exception

๐Ÿš€ โ†’ more advanced chapters

๐Ÿ” or ๐ŸŽฒ โ†’ Quiz

๐Ÿ“œ โ†’ Summary

Target audience

C# Developers - .NET SDK installed on your machine Notions in JavaScript/TypeScript can be helpful when we compare the languages

Perform the training yourself

As a F# developer in a .NET team using only C#, feel free to use these materials (both git-book and slides) to train your team.

๐Ÿ’ก The theme can be customized: it's "just" CSS and PNG files.

Changelog

2025-05-13

  • Dedicated page to cover everything regarding Exceptions

  • Misc precisions regarding Asynchronous programming

2025-04-02

Github

Linked-in

Twitter/X

:

Translation from

/rdeneau
romain-deneau
@DeneauRomain
Answer in a single tweet
French
formation-fsharp/en at main ยท rdeneau/formation-fsharpGitHub
Logo