SlideShare une entreprise Scribd logo
1  sur  16
Télécharger pour lire hors ligne
Introduction  to  
      F#
What’s  a  Seth?	


•    SD Native
•    Graduated a couple times
•    Developer – Blend Interactive
•    Consultant
•    Founder – Sioux Falls Developers Group
•    Cofounder – This thing we’re at today
Who  are  you?	


•    Java peoples?
•    .Net people?
•    Python/Ruby people?
•    Why are you interested?
Goals	

•  Give a little background
•  Explain some of the basic FP ideas
•  Cover F# syntax basics

•  Converting you to FP and F# is NOT my goal
Functional  Programming	
•    First Class Functions
•    Higher-Order Functions
•    No Shared State
•    No Side Effects
•    Immutable data
•    Recursion
Functional  Principles	

•  Composition over Inheritance

•  Separate functions from data

•  Referential Transparency
Composition  Over  
            Inheritance	
•  Write functions that transform known input to known
   output

•  Output of one function is input to the next

•  Things like LINQ
   o  Repeater.DataSource = myList.Where(x=> x.Length >
      5).OrderBy(x=>x.Name);
Separate  Functions  From  
            Data	

•  But why wouldn’t you want possibly re-usable
   functionality tightly bound to a specific data type?
Together                Separate	
•  x.Method()                 •  Method(x)




•  Our brains probably        •  But what if we want to
   prefer this way, nothing      use it on y?
   wrong with that            •  Method(y)
•  Since C# is taking on      •  darn
   some FP concepts
   extension methods
   semi-allow for this
Referential  Transparency	
•  ???

•  When it comes to null references
F#  isn’t  just  functional	
•  So I’m kind of wasting your time right?

•  F# is multi-paradigm, but “functional first”
   o  Object Oriented – Smalltalk
   o  Functional – Lisp, Scala, Haskell, OCaml, etc.
   o  Imperative – C



•  "I like to think of F# as a strongly typed python
   for .net” – Don Syme, MS Research/Creator of F#
Object  Oriented	
    Encapsulation
     Inheritance
    Polymorphism
Demo
What  industries?	
•    Finance
•    Front Office
•    Banking
•    Games
•    3D Graphics
•    Telecoms
•    Investment Banks
•    Advertising
What  companies?	
•    Optiver
•    EDF
•    Computational Problems
•    Credit Suisse
•    Data Analytics
•    Measured Progress
•    guardian.co.uk
Questions

Contenu connexe

Similaire à "Introduction to F#" - South Dakota Code Camp, November 5, 2011

Introduction to Functional Programming and Clojure
Introduction to Functional Programming and ClojureIntroduction to Functional Programming and Clojure
Introduction to Functional Programming and ClojureSoumendra Daas
 
Mathias Brandewinder, Software Engineer & Data Scientist, Clear Lines Consult...
Mathias Brandewinder, Software Engineer & Data Scientist, Clear Lines Consult...Mathias Brandewinder, Software Engineer & Data Scientist, Clear Lines Consult...
Mathias Brandewinder, Software Engineer & Data Scientist, Clear Lines Consult...MLconf
 
Introduction to functional programming with JavaScript
Introduction to functional programming with JavaScriptIntroduction to functional programming with JavaScript
Introduction to functional programming with JavaScriptFarzaneh Orak
 
F# for startups v2
F# for startups v2F# for startups v2
F# for startups v2joelgrus
 
Zero to Sixty with Oracle ApEx
Zero to Sixty with Oracle ApExZero to Sixty with Oracle ApEx
Zero to Sixty with Oracle ApExBradley Brown
 
Introducing Neo4j - Graph Databases • Beirut
Introducing Neo4j - Graph Databases • BeirutIntroducing Neo4j - Graph Databases • Beirut
Introducing Neo4j - Graph Databases • BeirutkinaneD
 
Devconf 2011 - PHP - How Yii framework is developed
Devconf 2011 - PHP - How Yii framework is developedDevconf 2011 - PHP - How Yii framework is developed
Devconf 2011 - PHP - How Yii framework is developedAlexander Makarov
 
Neo4j Training Introduction
Neo4j Training IntroductionNeo4j Training Introduction
Neo4j Training IntroductionMax De Marzi
 
Java- Java tech overview- Mazenet solution
Java- Java tech overview- Mazenet solutionJava- Java tech overview- Mazenet solution
Java- Java tech overview- Mazenet solutionMazenetsolution
 
F# for startups
F# for startupsF# for startups
F# for startupsjoelgrus
 
The Final Frontier
The Final FrontierThe Final Frontier
The Final FrontierjClarity
 
Large scale computing
Large scale computing Large scale computing
Large scale computing Bhupesh Bansal
 
DL4J at Workday Meetup
DL4J at Workday MeetupDL4J at Workday Meetup
DL4J at Workday MeetupDavid Kale
 
C++ in object oriented programming
C++ in object oriented programmingC++ in object oriented programming
C++ in object oriented programmingSaket Khopkar
 
Building a Flexible UI with Oracle ApEx
Building a Flexible UI with Oracle ApExBuilding a Flexible UI with Oracle ApEx
Building a Flexible UI with Oracle ApExBradley Brown
 
Facets and Pivoting for Flexible and Usable Linked Data Exploration
Facets and Pivoting for Flexible and Usable Linked Data ExplorationFacets and Pivoting for Flexible and Usable Linked Data Exploration
Facets and Pivoting for Flexible and Usable Linked Data ExplorationRoberto García
 
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
 
PyData Frankfurt - (Efficient) Data Exchange with "Foreign" Ecosystems
PyData Frankfurt - (Efficient) Data Exchange with "Foreign" EcosystemsPyData Frankfurt - (Efficient) Data Exchange with "Foreign" Ecosystems
PyData Frankfurt - (Efficient) Data Exchange with "Foreign" EcosystemsUwe Korn
 

Similaire à "Introduction to F#" - South Dakota Code Camp, November 5, 2011 (20)

Introduction to Functional Programming and Clojure
Introduction to Functional Programming and ClojureIntroduction to Functional Programming and Clojure
Introduction to Functional Programming and Clojure
 
Mathias Brandewinder, Software Engineer & Data Scientist, Clear Lines Consult...
Mathias Brandewinder, Software Engineer & Data Scientist, Clear Lines Consult...Mathias Brandewinder, Software Engineer & Data Scientist, Clear Lines Consult...
Mathias Brandewinder, Software Engineer & Data Scientist, Clear Lines Consult...
 
Introduction to functional programming with JavaScript
Introduction to functional programming with JavaScriptIntroduction to functional programming with JavaScript
Introduction to functional programming with JavaScript
 
F# for startups v2
F# for startups v2F# for startups v2
F# for startups v2
 
Zero to Sixty with Oracle ApEx
Zero to Sixty with Oracle ApExZero to Sixty with Oracle ApEx
Zero to Sixty with Oracle ApEx
 
Introducing Neo4j - Graph Databases • Beirut
Introducing Neo4j - Graph Databases • BeirutIntroducing Neo4j - Graph Databases • Beirut
Introducing Neo4j - Graph Databases • Beirut
 
Presentation c
Presentation cPresentation c
Presentation c
 
Devconf 2011 - PHP - How Yii framework is developed
Devconf 2011 - PHP - How Yii framework is developedDevconf 2011 - PHP - How Yii framework is developed
Devconf 2011 - PHP - How Yii framework is developed
 
Neo4j Training Introduction
Neo4j Training IntroductionNeo4j Training Introduction
Neo4j Training Introduction
 
Java- Java tech overview- Mazenet solution
Java- Java tech overview- Mazenet solutionJava- Java tech overview- Mazenet solution
Java- Java tech overview- Mazenet solution
 
Betabit - syrwag 2018-03-28
Betabit - syrwag 2018-03-28Betabit - syrwag 2018-03-28
Betabit - syrwag 2018-03-28
 
F# for startups
F# for startupsF# for startups
F# for startups
 
The Final Frontier
The Final FrontierThe Final Frontier
The Final Frontier
 
Large scale computing
Large scale computing Large scale computing
Large scale computing
 
DL4J at Workday Meetup
DL4J at Workday MeetupDL4J at Workday Meetup
DL4J at Workday Meetup
 
C++ in object oriented programming
C++ in object oriented programmingC++ in object oriented programming
C++ in object oriented programming
 
Building a Flexible UI with Oracle ApEx
Building a Flexible UI with Oracle ApExBuilding a Flexible UI with Oracle ApEx
Building a Flexible UI with Oracle ApEx
 
Facets and Pivoting for Flexible and Usable Linked Data Exploration
Facets and Pivoting for Flexible and Usable Linked Data ExplorationFacets and Pivoting for Flexible and Usable Linked Data Exploration
Facets and Pivoting for Flexible and Usable Linked Data Exploration
 
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 ...
 
PyData Frankfurt - (Efficient) Data Exchange with "Foreign" Ecosystems
PyData Frankfurt - (Efficient) Data Exchange with "Foreign" EcosystemsPyData Frankfurt - (Efficient) Data Exchange with "Foreign" Ecosystems
PyData Frankfurt - (Efficient) Data Exchange with "Foreign" Ecosystems
 

Plus de Blend Interactive

"The Accessible Editor Workshop" by Corey Vilhauer, from Now What? Workshops ...
"The Accessible Editor Workshop" by Corey Vilhauer, from Now What? Workshops ..."The Accessible Editor Workshop" by Corey Vilhauer, from Now What? Workshops ...
"The Accessible Editor Workshop" by Corey Vilhauer, from Now What? Workshops ...Blend Interactive
 
"The Accessible Editor" by Corey Vilhauer, from DrupalCon 2018 in Nashville, ...
"The Accessible Editor" by Corey Vilhauer, from DrupalCon 2018 in Nashville, ..."The Accessible Editor" by Corey Vilhauer, from DrupalCon 2018 in Nashville, ...
"The Accessible Editor" by Corey Vilhauer, from DrupalCon 2018 in Nashville, ...Blend Interactive
 
"Click to Continue" by Sam Otis, from Content+Design Meetup, Oct. 4, 2017
"Click to Continue" by Sam Otis, from Content+Design Meetup, Oct. 4, 2017"Click to Continue" by Sam Otis, from Content+Design Meetup, Oct. 4, 2017
"Click to Continue" by Sam Otis, from Content+Design Meetup, Oct. 4, 2017Blend Interactive
 
"Never Knowing Enough: dealing with the self doubt that hinders your success....
"Never Knowing Enough: dealing with the self doubt that hinders your success...."Never Knowing Enough: dealing with the self doubt that hinders your success....
"Never Knowing Enough: dealing with the self doubt that hinders your success....Blend Interactive
 
"Making things real: Content strategy for realistic content management" - Con...
"Making things real: Content strategy for realistic content management" - Con..."Making things real: Content strategy for realistic content management" - Con...
"Making things real: Content strategy for realistic content management" - Con...Blend Interactive
 
"Making things real: Content strategy for realistic content management" - Con...
"Making things real: Content strategy for realistic content management" - Con..."Making things real: Content strategy for realistic content management" - Con...
"Making things real: Content strategy for realistic content management" - Con...Blend Interactive
 
Getting Started With User-Centered Content by Emileigh Barnes & Kate Garklavs...
Getting Started With User-Centered Content by Emileigh Barnes & Kate Garklavs...Getting Started With User-Centered Content by Emileigh Barnes & Kate Garklavs...
Getting Started With User-Centered Content by Emileigh Barnes & Kate Garklavs...Blend Interactive
 
Content Measurement and Analytics: Making Positive Change on the Web by Rick ...
Content Measurement and Analytics: Making Positive Change on the Web by Rick ...Content Measurement and Analytics: Making Positive Change on the Web by Rick ...
Content Measurement and Analytics: Making Positive Change on the Web by Rick ...Blend Interactive
 
“How Silos Learn: Working in the Idea Factory” by Amanda Costello - Now What?...
“How Silos Learn: Working in the Idea Factory” by Amanda Costello - Now What?...“How Silos Learn: Working in the Idea Factory” by Amanda Costello - Now What?...
“How Silos Learn: Working in the Idea Factory” by Amanda Costello - Now What?...Blend Interactive
 
"Adaptive Content, Context, and Controversy
"Adaptive Content, Context, and Controversy"Adaptive Content, Context, and Controversy
"Adaptive Content, Context, and ControversyBlend Interactive
 
"Empathy Behind the Algorithms" by Chris Corak - Now What? Conference 2017
"Empathy Behind the Algorithms" by Chris Corak - Now What? Conference 2017"Empathy Behind the Algorithms" by Chris Corak - Now What? Conference 2017
"Empathy Behind the Algorithms" by Chris Corak - Now What? Conference 2017Blend Interactive
 
“The Beauty of Brevity” by Ravi Jain - Now What? Conference 2017
“The Beauty of Brevity” by Ravi Jain - Now What? Conference 2017“The Beauty of Brevity” by Ravi Jain - Now What? Conference 2017
“The Beauty of Brevity” by Ravi Jain - Now What? Conference 2017Blend Interactive
 
“Why Content Projects Fail” by Deane Barker - Now What? Conference 2017
“Why Content Projects Fail” by Deane Barker - Now What? Conference 2017“Why Content Projects Fail” by Deane Barker - Now What? Conference 2017
“Why Content Projects Fail” by Deane Barker - Now What? Conference 2017Blend Interactive
 
Not Perfect, "Always Better: A Story of Inclusion" by Derek Featherstone - No...
Not Perfect, "Always Better: A Story of Inclusion" by Derek Featherstone - No...Not Perfect, "Always Better: A Story of Inclusion" by Derek Featherstone - No...
Not Perfect, "Always Better: A Story of Inclusion" by Derek Featherstone - No...Blend Interactive
 
Content Design for Mobile Devices - Now What? Conference 2017
Content Design for Mobile Devices - Now What? Conference 2017Content Design for Mobile Devices - Now What? Conference 2017
Content Design for Mobile Devices - Now What? Conference 2017Blend Interactive
 
"Making Things Real: Taking content strategy from abstract to functional" - M...
"Making Things Real: Taking content strategy from abstract to functional" - M..."Making Things Real: Taking content strategy from abstract to functional" - M...
"Making Things Real: Taking content strategy from abstract to functional" - M...Blend Interactive
 
“Writing for Your Audience — The Message, the Words, the Plan” – Business Sen...
“Writing for Your Audience — The Message, the Words, the Plan” – Business Sen...“Writing for Your Audience — The Message, the Words, the Plan” – Business Sen...
“Writing for Your Audience — The Message, the Words, the Plan” – Business Sen...Blend Interactive
 
"The Self-Directed Strategist: Building a Practice and Managing Organizationa...
"The Self-Directed Strategist: Building a Practice and Managing Organizationa..."The Self-Directed Strategist: Building a Practice and Managing Organizationa...
"The Self-Directed Strategist: Building a Practice and Managing Organizationa...Blend Interactive
 
Next Level Collaboration: The Future of Content and Design by Rebekah Cancino...
Next Level Collaboration: The Future of Content and Design by Rebekah Cancino...Next Level Collaboration: The Future of Content and Design by Rebekah Cancino...
Next Level Collaboration: The Future of Content and Design by Rebekah Cancino...Blend Interactive
 

Plus de Blend Interactive (20)

"The Accessible Editor Workshop" by Corey Vilhauer, from Now What? Workshops ...
"The Accessible Editor Workshop" by Corey Vilhauer, from Now What? Workshops ..."The Accessible Editor Workshop" by Corey Vilhauer, from Now What? Workshops ...
"The Accessible Editor Workshop" by Corey Vilhauer, from Now What? Workshops ...
 
"The Accessible Editor" by Corey Vilhauer, from DrupalCon 2018 in Nashville, ...
"The Accessible Editor" by Corey Vilhauer, from DrupalCon 2018 in Nashville, ..."The Accessible Editor" by Corey Vilhauer, from DrupalCon 2018 in Nashville, ...
"The Accessible Editor" by Corey Vilhauer, from DrupalCon 2018 in Nashville, ...
 
"Click to Continue" by Sam Otis, from Content+Design Meetup, Oct. 4, 2017
"Click to Continue" by Sam Otis, from Content+Design Meetup, Oct. 4, 2017"Click to Continue" by Sam Otis, from Content+Design Meetup, Oct. 4, 2017
"Click to Continue" by Sam Otis, from Content+Design Meetup, Oct. 4, 2017
 
"Never Knowing Enough: dealing with the self doubt that hinders your success....
"Never Knowing Enough: dealing with the self doubt that hinders your success...."Never Knowing Enough: dealing with the self doubt that hinders your success....
"Never Knowing Enough: dealing with the self doubt that hinders your success....
 
"Making things real: Content strategy for realistic content management" - Con...
"Making things real: Content strategy for realistic content management" - Con..."Making things real: Content strategy for realistic content management" - Con...
"Making things real: Content strategy for realistic content management" - Con...
 
"Making things real: Content strategy for realistic content management" - Con...
"Making things real: Content strategy for realistic content management" - Con..."Making things real: Content strategy for realistic content management" - Con...
"Making things real: Content strategy for realistic content management" - Con...
 
Getting Started With User-Centered Content by Emileigh Barnes & Kate Garklavs...
Getting Started With User-Centered Content by Emileigh Barnes & Kate Garklavs...Getting Started With User-Centered Content by Emileigh Barnes & Kate Garklavs...
Getting Started With User-Centered Content by Emileigh Barnes & Kate Garklavs...
 
Content Measurement and Analytics: Making Positive Change on the Web by Rick ...
Content Measurement and Analytics: Making Positive Change on the Web by Rick ...Content Measurement and Analytics: Making Positive Change on the Web by Rick ...
Content Measurement and Analytics: Making Positive Change on the Web by Rick ...
 
“How Silos Learn: Working in the Idea Factory” by Amanda Costello - Now What?...
“How Silos Learn: Working in the Idea Factory” by Amanda Costello - Now What?...“How Silos Learn: Working in the Idea Factory” by Amanda Costello - Now What?...
“How Silos Learn: Working in the Idea Factory” by Amanda Costello - Now What?...
 
"Adaptive Content, Context, and Controversy
"Adaptive Content, Context, and Controversy"Adaptive Content, Context, and Controversy
"Adaptive Content, Context, and Controversy
 
"Empathy Behind the Algorithms" by Chris Corak - Now What? Conference 2017
"Empathy Behind the Algorithms" by Chris Corak - Now What? Conference 2017"Empathy Behind the Algorithms" by Chris Corak - Now What? Conference 2017
"Empathy Behind the Algorithms" by Chris Corak - Now What? Conference 2017
 
“The Beauty of Brevity” by Ravi Jain - Now What? Conference 2017
“The Beauty of Brevity” by Ravi Jain - Now What? Conference 2017“The Beauty of Brevity” by Ravi Jain - Now What? Conference 2017
“The Beauty of Brevity” by Ravi Jain - Now What? Conference 2017
 
“Why Content Projects Fail” by Deane Barker - Now What? Conference 2017
“Why Content Projects Fail” by Deane Barker - Now What? Conference 2017“Why Content Projects Fail” by Deane Barker - Now What? Conference 2017
“Why Content Projects Fail” by Deane Barker - Now What? Conference 2017
 
Not Perfect, "Always Better: A Story of Inclusion" by Derek Featherstone - No...
Not Perfect, "Always Better: A Story of Inclusion" by Derek Featherstone - No...Not Perfect, "Always Better: A Story of Inclusion" by Derek Featherstone - No...
Not Perfect, "Always Better: A Story of Inclusion" by Derek Featherstone - No...
 
Content Design for Mobile Devices - Now What? Conference 2017
Content Design for Mobile Devices - Now What? Conference 2017Content Design for Mobile Devices - Now What? Conference 2017
Content Design for Mobile Devices - Now What? Conference 2017
 
"Making Things Real: Taking content strategy from abstract to functional" - M...
"Making Things Real: Taking content strategy from abstract to functional" - M..."Making Things Real: Taking content strategy from abstract to functional" - M...
"Making Things Real: Taking content strategy from abstract to functional" - M...
 
“Writing for Your Audience — The Message, the Words, the Plan” – Business Sen...
“Writing for Your Audience — The Message, the Words, the Plan” – Business Sen...“Writing for Your Audience — The Message, the Words, the Plan” – Business Sen...
“Writing for Your Audience — The Message, the Words, the Plan” – Business Sen...
 
Functional concepts in C#
Functional concepts in C#Functional concepts in C#
Functional concepts in C#
 
"The Self-Directed Strategist: Building a Practice and Managing Organizationa...
"The Self-Directed Strategist: Building a Practice and Managing Organizationa..."The Self-Directed Strategist: Building a Practice and Managing Organizationa...
"The Self-Directed Strategist: Building a Practice and Managing Organizationa...
 
Next Level Collaboration: The Future of Content and Design by Rebekah Cancino...
Next Level Collaboration: The Future of Content and Design by Rebekah Cancino...Next Level Collaboration: The Future of Content and Design by Rebekah Cancino...
Next Level Collaboration: The Future of Content and Design by Rebekah Cancino...
 

Dernier

Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 

Dernier (20)

Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 

"Introduction to F#" - South Dakota Code Camp, November 5, 2011

  • 2. What’s  a  Seth? •  SD Native •  Graduated a couple times •  Developer – Blend Interactive •  Consultant •  Founder – Sioux Falls Developers Group •  Cofounder – This thing we’re at today
  • 3. Who  are  you? •  Java peoples? •  .Net people? •  Python/Ruby people? •  Why are you interested?
  • 4. Goals •  Give a little background •  Explain some of the basic FP ideas •  Cover F# syntax basics •  Converting you to FP and F# is NOT my goal
  • 5. Functional  Programming •  First Class Functions •  Higher-Order Functions •  No Shared State •  No Side Effects •  Immutable data •  Recursion
  • 6. Functional  Principles •  Composition over Inheritance •  Separate functions from data •  Referential Transparency
  • 7. Composition  Over   Inheritance •  Write functions that transform known input to known output •  Output of one function is input to the next •  Things like LINQ o  Repeater.DataSource = myList.Where(x=> x.Length > 5).OrderBy(x=>x.Name);
  • 8. Separate  Functions  From   Data •  But why wouldn’t you want possibly re-usable functionality tightly bound to a specific data type?
  • 9. Together                Separate •  x.Method() •  Method(x) •  Our brains probably •  But what if we want to prefer this way, nothing use it on y? wrong with that •  Method(y) •  Since C# is taking on •  darn some FP concepts extension methods semi-allow for this
  • 10. Referential  Transparency •  ??? •  When it comes to null references
  • 11. F#  isn’t  just  functional •  So I’m kind of wasting your time right? •  F# is multi-paradigm, but “functional first” o  Object Oriented – Smalltalk o  Functional – Lisp, Scala, Haskell, OCaml, etc. o  Imperative – C •  "I like to think of F# as a strongly typed python for .net” – Don Syme, MS Research/Creator of F#
  • 12. Object  Oriented Encapsulation Inheritance Polymorphism
  • 13. Demo
  • 14. What  industries? •  Finance •  Front Office •  Banking •  Games •  3D Graphics •  Telecoms •  Investment Banks •  Advertising
  • 15. What  companies? •  Optiver •  EDF •  Computational Problems •  Credit Suisse •  Data Analytics •  Measured Progress •  guardian.co.uk