SlideShare a Scribd company logo
| Basel

Making Magic with F#
Type Providers
Combining Data, Information, Services and Programming, at Internet-Scale
Dr. Don Syme
Principal Researcher, Microsoft, F# Community Contributor
@dsyme
Making Magic with F# Type Providers
1

2

3

4

5

6

7
Making Magic with F# Type Providers
Making Magic with F# Type Providers
Making Magic with F# Type Providers
Making Magic with F# Type Providers
Statically
Typed

Dynamically
Typed
Statically
Typed

Dynamically
Typed
A major search is on!
• make statically typed langs more dynamic
• make dynamically typed langs more static

• moderate static typing in limited ways
Making Magic with F# Type Providers
fsharp.org
fsharp.org/use/mac
fsharp.org/use/linux
fsharp.org/use/android
fsharp.org/use/ios
fsharp.org/use/windows
fsharp.org/use/freebsd
Making Magic with F# Type Providers
F#
let swap (x, y) = (y, x)

let rotations (x, y, z) =
[ (x, y, z);
(z, x, y);
(y, z, x) ]

let reduce f (x, y, z) =
f x + f y + f z

C#
Tuple<U,T> Swap<T,U>(Tuple<T,U> t)
{
return new Tuple<U,T>(t.Item2, t.Item1)
}
ReadOnlyCollection<Tuple<T,T,T>> Rotations<T>(Tuple<T,T,T>
t)
{
new ReadOnlyCollection<int>
(new Tuple<T,T,T>[]
{new Tuple<T,T,T>(t.Item1,t.Item2,t.Item3);
new Tuple<T,T,T>(t.Item3,t.Item1,t.Item2);
new Tuple<T,T,T>(t.Item2,t.Item3,t.Item1); });
}
int Reduce<T>(Func<T,int> f,Tuple<T,T,T> t)
{
return f(t.Item1)+f(t.Item2)+f(t.Item3);
}
Making Magic with F# Type Providers
Making Magic with F# Type Providers
10 Reasons Not to Use a Strongly Typed
Functional Language
fsharp.org/testimonials

schedule

an application to balance the national power generation
the calculation engine was written in F#
address the complexity at the heart of this application

algorithmically complex analysis of large data sets
fsharp.org/testimonials
F# runs on
many
platforms
“F# has many
contributors”
Many
perspectives

http://fsharp.org
Making Magic with F# Type Providers
Making Magic with F# Type Providers
Functional-first programming

Time-to-deployment Efficiency Correctness
Complexity

Taming
Examples

they are particularly amenable to
functional-first programming
functional
programming
initial paradigm
but employs other techniques such as
objects and state as necessary.
Give your

world some F# spice!
Making Magic with F# Type Providers
Making Magic with F# Type Providers
http://aws.amazon.com/tools
https://github.com/aws
http://www.windowsazure.com
https://github.com/WindowsAzure/
fsharp.org
fsharp.org/math
fsharp.org/data-science
fsharp.org/machine-learning
fsharp.org/cloud
fsharp.org/data-access
fsharp.net (MSDN pages)
Making Magic with F# Type Providers
Making Magic with F# Type Providers
freebase.com
Making Magic with F# Type Providers
Making Magic with F# Type Providers
Making Magic with F# Type Providers
Making Magic with F# Type Providers
Making Magic with F# Type Providers
let data = Freebase.GetDataContext()

data.

data.Society
Making Magic with F# Type Providers
types
SQL

05/12/2013

44
CSV

05/12/2013

45
JSON

05/12/2013

46
XML

05/12/2013

47
OData

05/12/2013

48
Hadoop/Hive

05/12/2013

49
World Bank

05/12/2013

50
Azure Data Market

05/12/2013

51
WSDL

05/12/2013

52
WMI

05/12/2013

53
Freebase

05/12/2013

54
JavaScript/TypeScript

05/12/2013

55
R

05/12/2013

56
Demo
F# + Xenomorph TimeScape

An F# type provider for deep, robust integration of financial data
Making Magic with F# Type Providers
data.AllEntites

Data Scripters need to work
with different granularities
of schematization

data.Automotive.``Automobile Models``
data.Automotive.``Automobile Models``.Individuals.``Porsche 911``

…Only a language that supports
massively scalable metadata can
operate at all these levels

Every stable
entity can get a
unique type
If the metadata contains units…

…then these can be projected
into the programming
language.
Making Magic with F# Type Providers
Many, many data sources are surprisingly stable
Some data sources support “snapshot dates”
F# supports “invalidation signals” from providers at designtime
Erasure makes compiled code much less fragile
fsharp.github.io/FSharp.Data
In Summary

Open, crossplatform, strongly
typed, efficient, rocksolid stable

The safe choice for
enterprise data
programming

Unbeatable data
integration

Visual F# - tooling you
can trust from Microsoft

F#
Questions?
Give your .NET

an F# edge!

More Related Content

PPT
Hadoop training institutes in bangalore
PPTX
All your types are belong to us!
PDF
TDD Boot Camp
DOCX
เทคนิคการค้นหาด้วย Google
PPTX
Succeeding with Functional-first Programming in Enterprise
PPTX
"The F# Path to Relaxation", Don Syme
PPTX
London F-Sharp User Group : Don Syme on F# - 09/09/2010
Hadoop training institutes in bangalore
All your types are belong to us!
TDD Boot Camp
เทคนิคการค้นหาด้วย Google
Succeeding with Functional-first Programming in Enterprise
"The F# Path to Relaxation", Don Syme
London F-Sharp User Group : Don Syme on F# - 09/09/2010

Similar to Making Magic with F# Type Providers (20)

PPTX
F# Data: Making structured data first class citizens
ODP
Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...
PPTX
F# for startups v2
PPTX
F# for startups
PDF
The F# Path to Relaxation
PPTX
F# Tutorial @ QCon
PPT
F# Sample and Resources
PPT
Accessing loosely structured data from F# and C#
PPTX
Can F# make us better as .NET developers?
ODP
Progressive f# tutorials nyc don syme on keynote f# in the open source world
PPTX
Introduction to f#
PDF
"Introduction to F#" - South Dakota Code Camp, November 5, 2011
PPTX
Introduction to Functional Programming in FSharp
PPTX
iOS App Development with F# and Xamarin
PPTX
Introduction to F#
PPTX
F# for functional enthusiasts
PDF
F sharp - an overview
PDF
Doing data science with F# (BuildStuff)
PPTX
What The F#
PPTX
Developing mobile apps with f sharp
F# Data: Making structured data first class citizens
Progressive f# tutorials nyc rachel reese & phil trelford on try f# from zero...
F# for startups v2
F# for startups
The F# Path to Relaxation
F# Tutorial @ QCon
F# Sample and Resources
Accessing loosely structured data from F# and C#
Can F# make us better as .NET developers?
Progressive f# tutorials nyc don syme on keynote f# in the open source world
Introduction to f#
"Introduction to F#" - South Dakota Code Camp, November 5, 2011
Introduction to Functional Programming in FSharp
iOS App Development with F# and Xamarin
Introduction to F#
F# for functional enthusiasts
F sharp - an overview
Doing data science with F# (BuildStuff)
What The F#
Developing mobile apps with f sharp
Ad

Recently uploaded (20)

PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
cloud_computing_Infrastucture_as_cloud_p
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
1. Introduction to Computer Programming.pptx
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
OMC Textile Division Presentation 2021.pptx
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
Tartificialntelligence_presentation.pptx
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PPTX
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
PPTX
A Presentation on Artificial Intelligence
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
A comparative study of natural language inference in Swahili using monolingua...
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
cloud_computing_Infrastucture_as_cloud_p
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Network Security Unit 5.pdf for BCA BBA.
1. Introduction to Computer Programming.pptx
Digital-Transformation-Roadmap-for-Companies.pptx
Advanced methodologies resolving dimensionality complications for autism neur...
OMC Textile Division Presentation 2021.pptx
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Tartificialntelligence_presentation.pptx
Assigned Numbers - 2025 - Bluetooth® Document
Group 1 Presentation -Planning and Decision Making .pptx
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
A Presentation on Artificial Intelligence
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Unlocking AI with Model Context Protocol (MCP)
MIND Revenue Release Quarter 2 2025 Press Release
Diabetes mellitus diagnosis method based random forest with bat algorithm
A comparative study of natural language inference in Swahili using monolingua...
Ad

Making Magic with F# Type Providers