SlideShare a Scribd company logo
Break Free with
Managed Functional Programming
An Introduction to F#
A language that doesn't affect the way you think
about programming, is not worth knowing.
Alan Perlis, Epigrams on Programming, 1982
About Me
• Dave Fancher
• Blog: http://davefancher.com
• Twitter: @davefancher
• Email: dave@davefancher.com
My Background
Why F#?
LINQ: The Functional Gateway Drug
• Learned about query syntax
• The method syntax
• Introduced me to functional principles
JavaScript, Too!
• Functions are first class citizens
• Its most powerful features are enabled by closures
Turning Functional
• Began applying functional principles in my code
• Immutability with readonly fields & properties
• More delegation
• Coding without side-effects
C# Was Getting Frustrating
• Verbose and repetitive
• Fragile
• Ceremonial
An Accidental Discovery
• Hanselminutes #311
• F#
So, what is this F# thing?
F# is a succinct, expressive, and efficient
functional and object-oriented language
for Microsoft .NET that helps you write
simple code to solve complex problems.
Origin
• CLR Language
• Microsoft Research, Cambridge
Lineage
ML OCaml F#
Multi-Paradigm
• Imperative
• Object-oriented
• Functional
Licensing & Availability
• First Class Citizen of Visual Studio since VS2010
• Apache 2.0 License
• Every major platform
• Managed by F# Software Foundation
Ok, but why should I care?
Gaining Traction
Source: TIOBE Index, May 2014 (http://bit.ly/1cvhJp3)
F# Over Time
August 2011
March 2013
March 2014
Source: TIOBE Index, May 2014 (http://bit.ly/1nnmeWK)
Functional-First
• Favors FP over other styles
• Other styles are available if needed
Design Principles
Terse Syntax
• Few keywords
• Limited punctuation
• Strong type inference
• Implicit return values
Top-Down Evaluation
• File order is significant
• Declaration order is, too
• Avoids inadvertent mutually recursive definitions
• Inferred return values
Organization Constructs
• Namespaces
• Modules
Expression-Based
• Everything returns a value
• Eager evaluation
Immutable by Default
• 3 Types of bindings
• Immutable by default
Let Bindings
Mutability
Reference Cells
Using Function & Use Bindings
Type system
All CLR Types
• Int32
• String
• Double
• Float
• DateTime
• TimeSpan
• Types from other assemblies
• …
Enumerations
Functions
• Every F# function accepts exactly one input and returns exactly one
output
• No concept of void functions
• No concept of parameterless functions
Unit
• Denoted as ()
• Indicates no specific value
• Can safely be ignored
• Usually indicative of a function that has some effect
Tuples
Tuples for out Parameters
Syntactic Tuples
Records
Discriminated Unions
• Immutable
• Structural Equality
• Resemble enumerations but are more powerful
• Versatile
DUs as Object Hierarchies
DUs as Trees
http://bit.ly/1g76AOv
Mitigating Null
Options
Integrated Units of Measure
Measure Types
Live Demo: Enforcing Units of Measure
Collection Types
• Sequences – seq { … }
• Arrays – [| … |]
• Lists – [ … ]
• Maps
• Sets
Collection Modules
• Provide functions for manipulating collections
• Many LINQ-like operations
• map -> Select
• reduce -> Aggregate
• filter -> Where
F# Lists
• Not List<‘T>
• Immutable
• [ … ]
• List module
• Cons operator ::
• Concatenation operator @
Composing F# Lists With :: and @
Object-Oriented
Classes
Filthy little
hobbitses.
They stole it
from us!
Classes
Interfaces
Implementing Interfaces
Inheritance & Virtual Members
Object Expressions
Functional
Functional programming is programming without
assignment statements.
Bob Martin, FP Basics, Episode 1 (http://bit.ly/1nnhDnm)
Functional Purity
• F# is impure
• Mutability and side-effects are
allowed
Functions as Data
• Higher-order functions
• Let-bound functions
• Lambda expressions
Currying
• Named for Haskell Curry
• Arguments are applied individually
• Changes function organization
Curried Addition & Expanded Form
Partial Application
Pipelining
Function Composition
Recursion
• Preferred looping mechanism
• Compiler optimizes for tail calls
Pattern Matching
Basic Pattern Matching
Built-in patterns
• Null
• Variable & Wildcard
• Literal
• Tuple
• Record
• Identifier
• Array
• List
• Cons
• As
• And
• Or
Decomposing Tuples
Decomposing DUs
Active Patterns
• Custom patterns
• Special type of function called an Active Recognizer
• Curried
• Maximum number of cases is 7
• Each input must map to a named case
Partial Active Patterns
• Single custom case
• Not restricted to 7 active patterns
• Return value is option
Live Demo: Partial Active Patterns
Data Access
Language Features
• Query Expressions
• Type Providers
Live Demo: Using the OData Type Provider
Async & Parallel Programming
Asynchronous Workflows
• Conceptually similar to async/await in C#
• Works using lightweight callbacks and continuations
Agent-based programming
• Borrowed from Erlang
• In-memory queuing mechanism
• Uses MailboxProcessor<‘T> for message passing
• Implementation often includes asynchronous workflows for
monitoring
Live Demo: Agent-based Calculator
Computation Expressions
Extending the Language
• Basis for several language features
• Based on a builder class
• Builder class methods map to familiar language elements
Live Demo: Custom Computation Expression
In Summary
• F# is a powerful, multi-paradigm language
• Plays nicely with other CLR languages
• Offers numerous constructs to keep you focused on the problem
rather than the plumbing
• Simple code for complex problems
No matter what language you work in, programming
in a functional style provides benefits. You should do it
whenever it is convenient, and you should think hard
about the decision when it isn’t convenient.
John Carmack, Functional Programming in C++
The More You Know
• The Book of F#
http://bit.ly/1hzHV6v
• F# Software Foundation
http://fsharp.org
• Try F#
http://tryfsharp.org
• F# Language Reference
http://bit.ly/1koEoqK

More Related Content

What's hot

Introduction to c first week slides
Introduction to c first week slidesIntroduction to c first week slides
Introduction to c first week slides
luqman bawany
 
Getting started with scala cats
Getting started with scala catsGetting started with scala cats
Getting started with scala cats
Knoldus Inc.
 
Introduction to Python Programming
Introduction to Python Programming Introduction to Python Programming
Introduction to Python Programming
Md. Shafiuzzaman Hira
 
Flow control in Python
Flow control in PythonFlow control in Python
Flow control in Python
Md. Shafiuzzaman Hira
 
Programming in python w6
Programming in python w6Programming in python w6
Programming in python w6
Priya Nayak
 
C Sharp Course 101.5
C Sharp Course 101.5C Sharp Course 101.5
C Sharp Course 101.5
Shahed Chowdhuri
 
Ruby introductions
Ruby introductionsRuby introductions
Ruby introductionsBinh Bui
 
Chapter one
Chapter oneChapter one
Chapter one
kiran acharya
 
Code reviews
Code reviewsCode reviews
Code reviewsRoger Xia
 
Part 2 - Python Tutorial | Introduction to Lists
Part 2 - Python Tutorial | Introduction to ListsPart 2 - Python Tutorial | Introduction to Lists
Part 2 - Python Tutorial | Introduction to Lists
Shivam Mitra
 
Clojure's take on concurrency
Clojure's take on concurrencyClojure's take on concurrency
Clojure's take on concurrencyyoavrubin
 
Advanced debugging
Advanced debuggingAdvanced debugging
Advanced debugging
Ali Akhtar
 
Introduction to Functional Programming and Clojure
Introduction to Functional Programming and ClojureIntroduction to Functional Programming and Clojure
Introduction to Functional Programming and Clojure
Soumendra Daas
 
0x3E9 Ways To DIE
0x3E9 Ways To DIE0x3E9 Ways To DIE
0x3E9 Ways To DIE
ynvb
 
Functional OOP, Clojure style
Functional OOP, Clojure styleFunctional OOP, Clojure style
Functional OOP, Clojure style
yoavrubin
 
Python introduction
Python introductionPython introduction
Python introductionRoger Xia
 

What's hot (19)

Introduction to c first week slides
Introduction to c first week slidesIntroduction to c first week slides
Introduction to c first week slides
 
Getting started with scala cats
Getting started with scala catsGetting started with scala cats
Getting started with scala cats
 
Introduction to Python Programming
Introduction to Python Programming Introduction to Python Programming
Introduction to Python Programming
 
Flow control in Python
Flow control in PythonFlow control in Python
Flow control in Python
 
Programming in python w6
Programming in python w6Programming in python w6
Programming in python w6
 
C Sharp Course 101.5
C Sharp Course 101.5C Sharp Course 101.5
C Sharp Course 101.5
 
C#
C#C#
C#
 
C#
C#C#
C#
 
C#
C#C#
C#
 
Ruby introductions
Ruby introductionsRuby introductions
Ruby introductions
 
Chapter one
Chapter oneChapter one
Chapter one
 
Code reviews
Code reviewsCode reviews
Code reviews
 
Part 2 - Python Tutorial | Introduction to Lists
Part 2 - Python Tutorial | Introduction to ListsPart 2 - Python Tutorial | Introduction to Lists
Part 2 - Python Tutorial | Introduction to Lists
 
Clojure's take on concurrency
Clojure's take on concurrencyClojure's take on concurrency
Clojure's take on concurrency
 
Advanced debugging
Advanced debuggingAdvanced debugging
Advanced debugging
 
Introduction to Functional Programming and Clojure
Introduction to Functional Programming and ClojureIntroduction to Functional Programming and Clojure
Introduction to Functional Programming and Clojure
 
0x3E9 Ways To DIE
0x3E9 Ways To DIE0x3E9 Ways To DIE
0x3E9 Ways To DIE
 
Functional OOP, Clojure style
Functional OOP, Clojure styleFunctional OOP, Clojure style
Functional OOP, Clojure style
 
Python introduction
Python introductionPython introduction
Python introduction
 

Viewers also liked

PROMIS Tempus Project
PROMIS Tempus ProjectPROMIS Tempus Project
PROMIS Tempus Project
PROMISproject
 
Dc roundtablesmall webservices_2002
Dc roundtablesmall webservices_2002Dc roundtablesmall webservices_2002
Dc roundtablesmall webservices_2002eaiti
 
Washdc cto-0905-2003
Washdc cto-0905-2003Washdc cto-0905-2003
Washdc cto-0905-2003eaiti
 
1 pigmentation
1 pigmentation1 pigmentation
1 pigmentationAhmed Amer
 
[FT-11][suhorng] “Poor Man's” Undergraduate Compilers
[FT-11][suhorng] “Poor Man's” Undergraduate Compilers[FT-11][suhorng] “Poor Man's” Undergraduate Compilers
[FT-11][suhorng] “Poor Man's” Undergraduate Compilers
Functional Thursday
 
[하종욱 설명서] IN 기아자동차
[하종욱 설명서] IN 기아자동차[하종욱 설명서] IN 기아자동차
[하종욱 설명서] IN 기아자동차
Jong Uk Ha
 
Mobile 2000
Mobile 2000Mobile 2000
Mobile 2000eaiti
 
Dions globalsoa web2presentation1_2006
Dions globalsoa web2presentation1_2006Dions globalsoa web2presentation1_2006
Dions globalsoa web2presentation1_2006eaiti
 
Personal development
Personal developmentPersonal development
Personal development
Notty Butt
 
[FT-7][snowmantw] How to make a new functional language and make the world be...
[FT-7][snowmantw] How to make a new functional language and make the world be...[FT-7][snowmantw] How to make a new functional language and make the world be...
[FT-7][snowmantw] How to make a new functional language and make the world be...
Functional Thursday
 
Stateof cto career_2002
Stateof cto career_2002Stateof cto career_2002
Stateof cto career_2002eaiti
 
Hemispheres of Data
Hemispheres of DataHemispheres of Data
Hemispheres of Dataeaiti
 
Cloud mz cto_roundtable
Cloud mz cto_roundtableCloud mz cto_roundtable
Cloud mz cto_roundtableeaiti
 
3 lesiones deportivas
3 lesiones deportivas3 lesiones deportivas
3 lesiones deportivasangelamaria99
 
Tempus PROMIS Work Packages
Tempus PROMIS Work PackagesTempus PROMIS Work Packages
Tempus PROMIS Work PackagesPROMISproject
 
презентация на ресепшин
презентация на ресепшинпрезентация на ресепшин
презентация на ресепшинTatyana Dubrova
 

Viewers also liked (20)

PROMIS Tempus Project
PROMIS Tempus ProjectPROMIS Tempus Project
PROMIS Tempus Project
 
Dc roundtablesmall webservices_2002
Dc roundtablesmall webservices_2002Dc roundtablesmall webservices_2002
Dc roundtablesmall webservices_2002
 
Skyeluxuria
SkyeluxuriaSkyeluxuria
Skyeluxuria
 
Washdc cto-0905-2003
Washdc cto-0905-2003Washdc cto-0905-2003
Washdc cto-0905-2003
 
1 pigmentation
1 pigmentation1 pigmentation
1 pigmentation
 
[FT-11][suhorng] “Poor Man's” Undergraduate Compilers
[FT-11][suhorng] “Poor Man's” Undergraduate Compilers[FT-11][suhorng] “Poor Man's” Undergraduate Compilers
[FT-11][suhorng] “Poor Man's” Undergraduate Compilers
 
Ford
FordFord
Ford
 
[하종욱 설명서] IN 기아자동차
[하종욱 설명서] IN 기아자동차[하종욱 설명서] IN 기아자동차
[하종욱 설명서] IN 기아자동차
 
Nagaraj
NagarajNagaraj
Nagaraj
 
Mobile 2000
Mobile 2000Mobile 2000
Mobile 2000
 
Dions globalsoa web2presentation1_2006
Dions globalsoa web2presentation1_2006Dions globalsoa web2presentation1_2006
Dions globalsoa web2presentation1_2006
 
Prashant Kumar
Prashant KumarPrashant Kumar
Prashant Kumar
 
Personal development
Personal developmentPersonal development
Personal development
 
[FT-7][snowmantw] How to make a new functional language and make the world be...
[FT-7][snowmantw] How to make a new functional language and make the world be...[FT-7][snowmantw] How to make a new functional language and make the world be...
[FT-7][snowmantw] How to make a new functional language and make the world be...
 
Stateof cto career_2002
Stateof cto career_2002Stateof cto career_2002
Stateof cto career_2002
 
Hemispheres of Data
Hemispheres of DataHemispheres of Data
Hemispheres of Data
 
Cloud mz cto_roundtable
Cloud mz cto_roundtableCloud mz cto_roundtable
Cloud mz cto_roundtable
 
3 lesiones deportivas
3 lesiones deportivas3 lesiones deportivas
3 lesiones deportivas
 
Tempus PROMIS Work Packages
Tempus PROMIS Work PackagesTempus PROMIS Work Packages
Tempus PROMIS Work Packages
 
презентация на ресепшин
презентация на ресепшинпрезентация на ресепшин
презентация на ресепшин
 

Similar to Break Free with Managed Functional Programming: An Introduction to F#

2018 12-kube con-ballerinacon
2018 12-kube con-ballerinacon2018 12-kube con-ballerinacon
2018 12-kube con-ballerinacon
Sanjiva Weerawarana
 
Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...
Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...
Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...
Skills Matter
 
Typescript Fundamentals
Typescript FundamentalsTypescript Fundamentals
Typescript Fundamentals
Sunny Sharma
 
A Type-level Ruby Interpreter for Testing and Understanding
A Type-level Ruby Interpreter for Testing and UnderstandingA Type-level Ruby Interpreter for Testing and Understanding
A Type-level Ruby Interpreter for Testing and Understanding
mametter
 
Introduction to Functional Programming
Introduction to Functional ProgrammingIntroduction to Functional Programming
Introduction to Functional Programming
Dave Fancher
 
Typescript ppt
Typescript pptTypescript ppt
Typescript ppt
akhilsreyas
 
F# for startups
F# for startupsF# for startups
F# for startups
joelgrus
 
.Net programming with C#
.Net programming with C#.Net programming with C#
.Net programming with C#
NguynSang29
 
Compiler Construction
Compiler ConstructionCompiler Construction
Compiler Construction
Ahmed Raza
 
TypeScript Overview
TypeScript OverviewTypeScript Overview
TypeScript Overview
Aniruddha Chakrabarti
 
TypeScript: Basic Features and Compilation Guide
TypeScript: Basic Features and Compilation GuideTypeScript: Basic Features and Compilation Guide
TypeScript: Basic Features and Compilation Guide
Nascenia IT
 
TypeScript
TypeScriptTypeScript
Clean code presentation
Clean code presentationClean code presentation
Clean code presentation
Bhavin Gandhi
 
Developing mobile apps with f sharp
Developing mobile apps with f sharpDeveloping mobile apps with f sharp
Developing mobile apps with f sharpGustavo Guerra
 
Python Basics.pptx
Python Basics.pptxPython Basics.pptx
Python Basics.pptx
16115yogendraSingh
 
Python1
Python1Python1
10 Sets of Best Practices for Java 8
10 Sets of Best Practices for Java 810 Sets of Best Practices for Java 8
10 Sets of Best Practices for Java 8
Garth Gilmour
 
C# language
C# languageC# language
C# language
Akanksha Shukla
 
JSR 335 / java 8 - update reference
JSR 335 / java 8 - update referenceJSR 335 / java 8 - update reference
JSR 335 / java 8 - update reference
sandeepji_choudhary
 
Unit ii
Unit   iiUnit   ii
Unit ii
sathisaran
 

Similar to Break Free with Managed Functional Programming: An Introduction to F# (20)

2018 12-kube con-ballerinacon
2018 12-kube con-ballerinacon2018 12-kube con-ballerinacon
2018 12-kube con-ballerinacon
 
Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...
Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...
Progressive f# tutorials nyc dmitry mozorov & jack pappas on code quotations ...
 
Typescript Fundamentals
Typescript FundamentalsTypescript Fundamentals
Typescript Fundamentals
 
A Type-level Ruby Interpreter for Testing and Understanding
A Type-level Ruby Interpreter for Testing and UnderstandingA Type-level Ruby Interpreter for Testing and Understanding
A Type-level Ruby Interpreter for Testing and Understanding
 
Introduction to Functional Programming
Introduction to Functional ProgrammingIntroduction to Functional Programming
Introduction to Functional Programming
 
Typescript ppt
Typescript pptTypescript ppt
Typescript ppt
 
F# for startups
F# for startupsF# for startups
F# for startups
 
.Net programming with C#
.Net programming with C#.Net programming with C#
.Net programming with C#
 
Compiler Construction
Compiler ConstructionCompiler Construction
Compiler Construction
 
TypeScript Overview
TypeScript OverviewTypeScript Overview
TypeScript Overview
 
TypeScript: Basic Features and Compilation Guide
TypeScript: Basic Features and Compilation GuideTypeScript: Basic Features and Compilation Guide
TypeScript: Basic Features and Compilation Guide
 
TypeScript
TypeScriptTypeScript
TypeScript
 
Clean code presentation
Clean code presentationClean code presentation
Clean code presentation
 
Developing mobile apps with f sharp
Developing mobile apps with f sharpDeveloping mobile apps with f sharp
Developing mobile apps with f sharp
 
Python Basics.pptx
Python Basics.pptxPython Basics.pptx
Python Basics.pptx
 
Python1
Python1Python1
Python1
 
10 Sets of Best Practices for Java 8
10 Sets of Best Practices for Java 810 Sets of Best Practices for Java 8
10 Sets of Best Practices for Java 8
 
C# language
C# languageC# language
C# language
 
JSR 335 / java 8 - update reference
JSR 335 / java 8 - update referenceJSR 335 / java 8 - update reference
JSR 335 / java 8 - update reference
 
Unit ii
Unit   iiUnit   ii
Unit ii
 

Recently uploaded

Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
IES VE
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
Visitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.appVisitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.app
NaapbooksPrivateLimi
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Shahin Sheidaei
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar
 
Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should Know
Peter Caitens
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
Ortus Solutions, Corp
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
Tier1 app
 
Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024
Sharepoint Designs
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 

Recently uploaded (20)

Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
Visitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.appVisitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.app
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should Know
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 

Break Free with Managed Functional Programming: An Introduction to F#

Editor's Notes

  1. Query Expressions LINQ for F# Nullable operators Type Providers Built-in Providers SQL Server Entity Framework OData WSDL Some Third Party Providers App Settings Excel File System Regex XAML