SlideShare a Scribd company logo
Introduction to F#
Michael Yeaney, Minitab, Inc.
Who Am I?
● Research Architect at Minitab, Inc.
● Focus on distributed systems (cloud apps)
o Scale/Consistency
o Security
● Provable code/systems junkie
o How do you know a system is behaving correctly?
F#....from Microsoft?
● Functional Language (based on OCaml)
● Focus on “pure” FP first, then OO concepts
● Ideal for certain problem sets
o Scientific/stateless
o Pure Logic
● Awesome for modeling
o Works for any domain
o Great for provers/solvers
Benefits
● Access to .NET framework / ecosystem
● Interoperability with any CLR language
o Can be used to cross “language” barriers
● Available cross-platform
o Windows via .NET Framework / VS
o Linux/OS-X via Mono Framework / Xamarin
o Emacs / Vim, too!!!
Features...
● First-class support of functions as values
● Immutability *by default*
o Opt-in to mutation
● Algebraic Types
● Actor-based model of concurrency
● Type providers
Features: Functions as values
● Functions are treated just as any value
● Partial application
● Composition
Features: Immutability
● Assigned values *cannot* be changed
● However….local shadowing is a thing :-(
● That said...avoids a whole set of problems
o Allows certain performance advantages
Features: Algebraic Types
● Combine (compose) types
● Encode type rules completely in...types. :-
o Types are not classes!!!
● Allows use of discriminated union types
o Quite powerful; hard to express better
● Yields _provable_ code
Features: Actor Model
● Built-in actor model
● Allows lightweight concurrency
● Far more scalable than threads/processes
o Erlang/Akka/etc.
● Not quite as transparent as OTP
o Cross-machine is still quite explicit.
o Frameworks help (FSharp.CloudAgent, Cricket)
Features: Type Providers
● New to F# 3.0
● Provide type information
(methods/properties) from external data
sources
● Many built-in providers available OOB:
o OData, WSDL, SQL, CSV
● Create custom type providers
Great stuff!!! Now what?
● Download!!!! [fsharp.org]
● Learn!!! [fsharp.org]
● Psst….[fsharp.org]
● Use a little...integrate into .NET projects
● Use a lot...entire project in F#
● Not using .NET
o Expose via STDIN/OUT….TCP socket….HTTP(S)
Thank You!!!

More Related Content

PPTX
Typescript ppt
PPTX
TypeScript Modules
PDF
New c sharp4_features_part_v
PDF
TypeScript - An Introduction
PPTX
C-Sharp 6.0 ver2
PPTX
C Sharp Course 101.5
PDF
Power Leveling your TypeScript
PPTX
Typescript ppt
TypeScript Modules
New c sharp4_features_part_v
TypeScript - An Introduction
C-Sharp 6.0 ver2
C Sharp Course 101.5
Power Leveling your TypeScript

What's hot (20)

PPTX
Beginning Java for .NET developers
PPTX
Typescript Fundamentals
PDF
Getting Started with TypeScript
PDF
Lo1
PPTX
TypeScript . the JavaScript developer best friend!
PDF
TypeScript Best Practices
PPTX
TypeScript 101
PPTX
Typescript in 30mins
PPT
Developing Android applications with Ceylon
PPTX
TypeScript Overview
PPTX
Groovy / comparison with java
PPTX
TypeScript intro
PPTX
Introducing type script
PDF
TypeScript: coding JavaScript without the pain
PPTX
Type script - advanced usage and practices
PDF
Unsafe to typesafe
PDF
JDD 2017: Kotlin for Java developers (Tomasz Kleszczyński)
PPT
Learning typescript
PDF
Introduction to TypeScript by Winston Levi
PPTX
AngularConf2015
Beginning Java for .NET developers
Typescript Fundamentals
Getting Started with TypeScript
Lo1
TypeScript . the JavaScript developer best friend!
TypeScript Best Practices
TypeScript 101
Typescript in 30mins
Developing Android applications with Ceylon
TypeScript Overview
Groovy / comparison with java
TypeScript intro
Introducing type script
TypeScript: coding JavaScript without the pain
Type script - advanced usage and practices
Unsafe to typesafe
JDD 2017: Kotlin for Java developers (Tomasz Kleszczyński)
Learning typescript
Introduction to TypeScript by Winston Levi
AngularConf2015
Ad

Viewers also liked (13)

DOCX
Cnc coffee book layout
DOCX
J hay resume final com pm 2016 v dp
PDF
Deyvi noe salguero galdamez vocabulario del agronomo
PPT
Microsoft Convergence Presentation
DOCX
J hay resume final res 2014 v dp
PDF
enterprise-architectuur
PDF
NAJBOLI PREVODITELJ
DOCX
J hay resume final com pm 2016 v dp
PDF
PROSPECTUS FOR THE AFRICA FELLOWSHIP PROGRAMME
PDF
My Weigel's Is....
PPTX
Deyvi noe salguero galdamez vocabulario del agronomo
PDF
Conference brochure
Cnc coffee book layout
J hay resume final com pm 2016 v dp
Deyvi noe salguero galdamez vocabulario del agronomo
Microsoft Convergence Presentation
J hay resume final res 2014 v dp
enterprise-architectuur
NAJBOLI PREVODITELJ
J hay resume final com pm 2016 v dp
PROSPECTUS FOR THE AFRICA FELLOWSHIP PROGRAMME
My Weigel's Is....
Deyvi noe salguero galdamez vocabulario del agronomo
Conference brochure
Ad

Similar to Introduction to f# (20)

PDF
Madrid F# Meetup: Introduction to F#
PPTX
Introduction to F#
PPTX
Practical F#
ODP
F# 101
PPTX
Can F# make us better as .NET developers?
PDF
"Introduction to F#" - South Dakota Code Camp, November 5, 2011
PPT
F# Eye for the C# Guy
PPT
F# Sample and Resources
PPTX
London F-Sharp User Group : Don Syme on F# - 09/09/2010
PPTX
Introduction to F#
PPTX
Break Free with Managed Functional Programming: An Introduction to F#
PPTX
Break Free with Managed Functional Programming: An Introduction to F#
PPTX
Tech for devs, F#
PPT
Bay NET Aug 19 2009 presentation ppt
PPTX
F# for startups v2
PPTX
Sharper tools with F#
PPT
F# and the DLR
PPTX
F# Tutorial @ QCon
PPTX
F# for startups
PPTX
"The F# Path to Relaxation", Don Syme
Madrid F# Meetup: Introduction to F#
Introduction to F#
Practical F#
F# 101
Can F# make us better as .NET developers?
"Introduction to F#" - South Dakota Code Camp, November 5, 2011
F# Eye for the C# Guy
F# Sample and Resources
London F-Sharp User Group : Don Syme on F# - 09/09/2010
Introduction to F#
Break Free with Managed Functional Programming: An Introduction to F#
Break Free with Managed Functional Programming: An Introduction to F#
Tech for devs, F#
Bay NET Aug 19 2009 presentation ppt
F# for startups v2
Sharper tools with F#
F# and the DLR
F# Tutorial @ QCon
F# for startups
"The F# Path to Relaxation", Don Syme

Recently uploaded (20)

PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
CapCut Video Editor 6.8.1 Crack for PC Latest Download (Fully Activated) 2025
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
iTop VPN Free 5.6.0.5262 Crack latest version 2025
PPTX
CHAPTER 2 - PM Management and IT Context
PPTX
assetexplorer- product-overview - presentation
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PPTX
Advanced SystemCare Ultimate Crack + Portable (2025)
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
Salesforce Agentforce AI Implementation.pdf
PDF
Digital Systems & Binary Numbers (comprehensive )
PDF
CCleaner Pro 6.38.11537 Crack Final Latest Version 2025
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
Website Design Services for Small Businesses.pdf
PDF
Download FL Studio Crack Latest version 2025 ?
PDF
Complete Guide to Website Development in Malaysia for SMEs
PPTX
Embracing Complexity in Serverless! GOTO Serverless Bengaluru
PDF
AI-Powered Threat Modeling: The Future of Cybersecurity by Arun Kumar Elengov...
Design an Analysis of Algorithms II-SECS-1021-03
CapCut Video Editor 6.8.1 Crack for PC Latest Download (Fully Activated) 2025
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
iTop VPN Free 5.6.0.5262 Crack latest version 2025
CHAPTER 2 - PM Management and IT Context
assetexplorer- product-overview - presentation
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
Advanced SystemCare Ultimate Crack + Portable (2025)
Odoo Companies in India – Driving Business Transformation.pdf
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Navsoft: AI-Powered Business Solutions & Custom Software Development
Salesforce Agentforce AI Implementation.pdf
Digital Systems & Binary Numbers (comprehensive )
CCleaner Pro 6.38.11537 Crack Final Latest Version 2025
Wondershare Filmora 15 Crack With Activation Key [2025
Website Design Services for Small Businesses.pdf
Download FL Studio Crack Latest version 2025 ?
Complete Guide to Website Development in Malaysia for SMEs
Embracing Complexity in Serverless! GOTO Serverless Bengaluru
AI-Powered Threat Modeling: The Future of Cybersecurity by Arun Kumar Elengov...

Introduction to f#

  • 1. Introduction to F# Michael Yeaney, Minitab, Inc.
  • 2. Who Am I? ● Research Architect at Minitab, Inc. ● Focus on distributed systems (cloud apps) o Scale/Consistency o Security ● Provable code/systems junkie o How do you know a system is behaving correctly?
  • 3. F#....from Microsoft? ● Functional Language (based on OCaml) ● Focus on “pure” FP first, then OO concepts ● Ideal for certain problem sets o Scientific/stateless o Pure Logic ● Awesome for modeling o Works for any domain o Great for provers/solvers
  • 4. Benefits ● Access to .NET framework / ecosystem ● Interoperability with any CLR language o Can be used to cross “language” barriers ● Available cross-platform o Windows via .NET Framework / VS o Linux/OS-X via Mono Framework / Xamarin o Emacs / Vim, too!!!
  • 5. Features... ● First-class support of functions as values ● Immutability *by default* o Opt-in to mutation ● Algebraic Types ● Actor-based model of concurrency ● Type providers
  • 6. Features: Functions as values ● Functions are treated just as any value ● Partial application ● Composition
  • 7. Features: Immutability ● Assigned values *cannot* be changed ● However….local shadowing is a thing :-( ● That said...avoids a whole set of problems o Allows certain performance advantages
  • 8. Features: Algebraic Types ● Combine (compose) types ● Encode type rules completely in...types. :- o Types are not classes!!! ● Allows use of discriminated union types o Quite powerful; hard to express better ● Yields _provable_ code
  • 9. Features: Actor Model ● Built-in actor model ● Allows lightweight concurrency ● Far more scalable than threads/processes o Erlang/Akka/etc. ● Not quite as transparent as OTP o Cross-machine is still quite explicit. o Frameworks help (FSharp.CloudAgent, Cricket)
  • 10. Features: Type Providers ● New to F# 3.0 ● Provide type information (methods/properties) from external data sources ● Many built-in providers available OOB: o OData, WSDL, SQL, CSV ● Create custom type providers
  • 11. Great stuff!!! Now what? ● Download!!!! [fsharp.org] ● Learn!!! [fsharp.org] ● Psst….[fsharp.org] ● Use a little...integrate into .NET projects ● Use a lot...entire project in F# ● Not using .NET o Expose via STDIN/OUT….TCP socket….HTTP(S)