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 · WWC 2022

2:28 min

Functional programming roots and security focus

Arthur Breitman Arthur Breitman · WWC 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 · WWC 2022

1:30 min

Benefits of writing encapsulated functional code

Jemima Abu · WWC 2022

Upcoming sessions on this topic

Open session

World Congress 2026 North America

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

Honey, look! I vibe-coded an OS!

Ian Smith

CTO, LYOS

Ian Smith
Open session

World Congress 2026 North America

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

Shubham Chaurasia

Senior Software Engineer @ Meta

Shubham Chaurasia
Open session

World Congress 2026 North America

Beyond Vibe Coding: Using CLI Tools as Your AI Counterpart in Pair Programming

Ron Veen

Java enthusiast and Special agent for Team Rockstars IT

Ron Veen
Open session

World Congress 2026 North America

Full Stack with Flutter - are we there yet?

Nemanja Stošić

Senior Flutter Developer

Nemanja Stošić
Open session

World Congress 2026 North America

Merging at Scale: From Broken Builds to Green Mainline

Manjari Akella, Preetam Dwivedi

Manjari Akella
Preetam Dwivedi