World Congress 2023 Sep 27, 2023

F#, path to functional enlightenment

Onur Gumus

Ditch the mental overhead of continuous state mutation. Master F# to securely deliver full-stack applications across JS, Rust, and Python using purely functional code.

Pause
Mute Enter Fullscreen
#1 about 2 min

Unlearning existing paradigms while adopting functional programming

Getting into functional programming requires letting go of existing imperative knowledge.

#2 about 2 min

Avoiding state and side effects in code

Functional programming allows developers to focus on current code sections without worrying about hidden state changes.

#3 about 2 min

Correlating mathematical functions with functional programming concepts

Borrowing characteristics from mathematical functions ensures consistent outputs without side effects for line-of-business applications.

#4 about 2 min

Evaluating single parameters and the unit type

Functions in F# always evaluate one parameter and return a value, using the unit type when implicitly returning nothing.

#5 about 1 min

Building complex application components through function composition

Combining smaller functions creates larger robust systems and eliminates backtracking in stateful programming.

#6 about 2 min

Differentiating variable redefinition from traditional value assignment

F# introduces specific semantics for equality checks and redefining properties instead of traditional variable assignments.

#7 about 1 min

Controlling dependencies through file compilation order

Linear file ordering in F# projects restricts backward module access to streamline testing and studying code.

#8 about 1 min

Applying isomorphic web development concepts across platforms

F# compiles across diverse platforms like JavaScript, Node, and Python to simplify frontend and backend synchronization.

#9 about 4 min

Coding in the browser with Fable REPL

The Fable environment executes interactive F# scripts in the browser natively while mapping outputs to JavaScript.

#10 about 3 min

Passing execution context with the pipeline operator

The pipeline operator enhances readability by automatically feeding outputs of one function as inputs into the next.

#11 about 2 min

Enforcing type safety with discriminated unions

Defining specific outcomes through discriminated unions prevents arbitrary strings from slipping through compiler checks.

#12 about 4 min

Managing edge cases without modifying previous logic

Wrapping and appending newly created behavior logic keeps original function rules intact and prevents regression bugs.

#13 about 4 min

Validating inputs with the built-in result type

Adopting native result structures and lifting function values manages validation checks against external failure points.

#14 about 3 min

Analyzing real-world F# applications in production

Reviewing fully implemented front-end and back-end F# commercial projects demonstrates the language's capabilities in production.

#15 about 2 min

Utilizing community resources to learn F#

Joining official software groups provides tools and personal mentoring sessions for mastering the platform.

#16 about 2 min

Exploring code debugging practices and IDE recommendations

Audience questions cover code extension philosophies, source map debugging, and supported development environments.

Matching moments

8:10 min

Functional programming principles and practical application in C#

Simon Painter · LIVE

2:55 min

Defining the core principles of functional programming

Jemima Abu · World Congress 2022

2:28 min

Functional programming roots and security focus

Arthur Breitman Arthur Breitman · World Congress 2021

8:04 min

Simplifying code maintenance using early returns and functional programming

Chris Heilmann +2 · LIVE

2:14 min

Exploring frontend development choices beyond standard JavaScript frameworks

Stacy Cashmore · World Congress 2022

1:30 min

Benefits of writing encapsulated functional code

Jemima Abu · World Congress 2022

Upcoming sessions on this topic

Open session

World Congress 2026 North America

September 24, 2026 · 16:10–16:40

Outdoor Stage

When Humans Stop Writing Code: Rethinking Languages, Compilers, and Responsibility

Simon Auer

Organizer of flutter vienna meetup and CEO of marqably

Simon Auer
Open session

World Congress 2026 North America

September 25, 2026 · 09:40–10:10

Stage 3

Still on 4.8 or lower? A Practical Guide to Moving Your "Un-Migratable" .NET Apps

Isaac Levin

Developer Advocate

Isaac Levin
Open session

World Congress 2026 North America

September 23, 2026 · 13:00–13:30

Stage 2

Parallelize Your Development with GitHub Copilot

Pamela Fox

Principal Cloud Advocate, Microsoft

Pamela Fox
Open session

World Congress 2026 North America

September 25, 2026 · 16:50–17:20

Stage 1

Honey, look! I vibe-coded an OS!

Ian Smith

CTO of LYOS

Ian Smith
Open session

World Congress 2026 North America

September 25, 2026 · 11:00–11:30

Stage 7

Beyond Vibe Coding: An AI Builder’s Guide to Migrating 10k+ React Components

Shubham Chaurasia

Senior Software Engineer at Meta

Shubham Chaurasia
Open session

World Congress 2026 North America

September 24, 2026 · 12:30–12:35

Outdoor Stage

Software change is outpacing the platforms built to understand it.

Lee Faus

Git was built for humans. I'm building what comes next.

Lee Faus