SlideShare une entreprise Scribd logo
1  sur  68
Télécharger pour lire hors ligne
CODER
F#NCTIONNELNicolas Verinaud
RETOUR <
] F#UTUR
Gare Aux
Side Effects
M
ap
Filter
Lambda
C#
C#
C#
C#
C#
C#
C#
C#
SOLID
Quand
Est poussé à l’extrême
F#
F#
Oui, fun est un mot-clé en F# ! :-)
F#
F#
F#
F#
IMMUABILITÉ
&
EGALITÉ
C#
C#
C#
C#
F#
F#
F#
F#
C#
C#
C#
F#
F#
COMPOSITION
Mort à l’
Vive la
Heritage
F#
F#
F#
F#
F#
DOMAIN
SPECIFIC
LANGUAGE
F#
F#
F#
F#
Null
Reference
“My Billion Dollar Mistake”
– Tony Hoare
F#
F#
F#
F#
F#
OMG !
F#
F#
C#
F#
NON
REPRESENTABLE
Rendre les États Illégaux
F#
F#
F#
F#
TYPE PROVIDERS
et F# dans ma boite !
DEMO TIME !
* Try F# ! —> http://www.tryfsharp.org/
* F# pour les développeurs “non
fonctionnels” —> http://
fsharpforfunandprofit.com/
* La communauté —> http://fsharp.org/
Pour aller plus loin…
MERCI !
@nverinaud
n.verinaud@gmail.com
nverinaud.com
QUESTIONS ?
Avez-vous des
* Ten things F# can do, and C# can't http://tv.ssw.com/5160/ten-things-f-sharp-can-do-and-c-sharp-
cant-liam-mclennan-ddd-brisbane-2013
* Make illegal states unrepresentable ! https://vimeo.com/144800642
* F# for fun and profit http://fsharpforfunandprofit.com
* From SOLID to Functional : http://www.infoq.com/presentations/solid-oop-fp
* What Is Functional Programing ? http://blog.jenkster.com/2015/12/what-is-functional-
programming.html
* Which Programming Languages Are Functional ? http://blog.jenkster.com/2015/12/which-
programming-languages-are-functional.html
* F# as our day job by 2016 https://vimeo.com/132194547
* Null References : The Billion Dollar Mistake - Tony Hoare http://www.infoq.com/presentations/Null-
References-The-Billion-Dollar-Mistake-Tony-Hoare
Sources et Inspirations
* “OMG” by muffinbasket [CC BY-NC-ND 2.0] (https://www.flickr.com/photos/
48221134@N08/4958245676)
* “Orange County Archives” by Dyer Rd., looking east at Main St., Santa Ana, May 1956 [CC BY 2.0]
(https://www.flickr.com/photos/30346812@N07/14632402586)
* “Not What I Expected To See” by Bart [CC BY-NC 2.0] (https://www.flickr.com/photos/
17731548@N00/3262688866)
Crédits Photo
Télécharger cette
présentation
coder-fonctionnel.nverinaud.com
Télécharger le code
de la démo
http://github.com/nverinaud/
coder-fonctionnel

Contenu connexe

Plus de Nicolas VERINAUD

Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019
Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019
Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019Nicolas VERINAUD
 
Du Code & Des Humains - ElsassJUG 2018
Du Code & Des Humains - ElsassJUG 2018Du Code & Des Humains - ElsassJUG 2018
Du Code & Des Humains - ElsassJUG 2018Nicolas VERINAUD
 
Du Code & Des Humains - Agile Tour Strasbourg 2017
Du Code & Des Humains - Agile Tour Strasbourg 2017Du Code & Des Humains - Agile Tour Strasbourg 2017
Du Code & Des Humains - Agile Tour Strasbourg 2017Nicolas VERINAUD
 
Les Code Reviews : le guide de survie
Les Code Reviews : le guide de survieLes Code Reviews : le guide de survie
Les Code Reviews : le guide de survieNicolas VERINAUD
 
Functional Reactive Programming avec RxSwift
Functional Reactive Programming avec RxSwiftFunctional Reactive Programming avec RxSwift
Functional Reactive Programming avec RxSwiftNicolas VERINAUD
 
SUPINFO Mobile Dev Talks - iOS
SUPINFO Mobile Dev Talks - iOSSUPINFO Mobile Dev Talks - iOS
SUPINFO Mobile Dev Talks - iOSNicolas VERINAUD
 

Plus de Nicolas VERINAUD (7)

Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019
Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019
Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019
 
Du Code & Des Humains - ElsassJUG 2018
Du Code & Des Humains - ElsassJUG 2018Du Code & Des Humains - ElsassJUG 2018
Du Code & Des Humains - ElsassJUG 2018
 
Du Code & Des Humains - Agile Tour Strasbourg 2017
Du Code & Des Humains - Agile Tour Strasbourg 2017Du Code & Des Humains - Agile Tour Strasbourg 2017
Du Code & Des Humains - Agile Tour Strasbourg 2017
 
Du Code & Des Humains
Du Code & Des HumainsDu Code & Des Humains
Du Code & Des Humains
 
Les Code Reviews : le guide de survie
Les Code Reviews : le guide de survieLes Code Reviews : le guide de survie
Les Code Reviews : le guide de survie
 
Functional Reactive Programming avec RxSwift
Functional Reactive Programming avec RxSwiftFunctional Reactive Programming avec RxSwift
Functional Reactive Programming avec RxSwift
 
SUPINFO Mobile Dev Talks - iOS
SUPINFO Mobile Dev Talks - iOSSUPINFO Mobile Dev Talks - iOS
SUPINFO Mobile Dev Talks - iOS
 

Dernier

[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdfSteve Caron
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolsosttopstonverter
 
Revolutionize Your Video Editing with InVideo.io: A Comprehensive Review
Revolutionize Your Video Editing with InVideo.io: A Comprehensive ReviewRevolutionize Your Video Editing with InVideo.io: A Comprehensive Review
Revolutionize Your Video Editing with InVideo.io: A Comprehensive Reviewjw364beach
 
Effort Estimation Techniques used in Software Projects
Effort Estimation Techniques used in Software ProjectsEffort Estimation Techniques used in Software Projects
Effort Estimation Techniques used in Software ProjectsDEEPRAJ PATHAK
 
Mastering Project Planning with Microsoft Project 2016.pptx
Mastering Project Planning with Microsoft Project 2016.pptxMastering Project Planning with Microsoft Project 2016.pptx
Mastering Project Planning with Microsoft Project 2016.pptxAS Design & AST.
 
Advantages of Cargo Cloud Solutions.pptx
Advantages of Cargo Cloud Solutions.pptxAdvantages of Cargo Cloud Solutions.pptx
Advantages of Cargo Cloud Solutions.pptxRTS corp
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...Bert Jan Schrijver
 
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdfAndrey Devyatkin
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogueitservices996
 
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorEffectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorTier1 app
 
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingShane Coughlan
 
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...OnePlan Solutions
 
oracle 23c new features for developer and dba
oracle 23c new features for developer and dbaoracle 23c new features for developer and dba
oracle 23c new features for developer and dbaRemote DBA Services
 
Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptxVinzoCenzo
 
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsStrategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsJean Silva
 
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...kalichargn70th171
 
What is Mendix and the concept of low-code development.docx
What is Mendix and the concept of low-code development.docxWhat is Mendix and the concept of low-code development.docx
What is Mendix and the concept of low-code development.docxTechnogeeks
 
Santander Stream Processing with Apache Flink
Santander Stream Processing with Apache FlinkSantander Stream Processing with Apache Flink
Santander Stream Processing with Apache Flinkconfluent
 
full course of software engineering mid term.pdf
full course of software engineering mid term.pdffull course of software engineering mid term.pdf
full course of software engineering mid term.pdfAbdul salam
 

Dernier (20)

[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration tools
 
Revolutionize Your Video Editing with InVideo.io: A Comprehensive Review
Revolutionize Your Video Editing with InVideo.io: A Comprehensive ReviewRevolutionize Your Video Editing with InVideo.io: A Comprehensive Review
Revolutionize Your Video Editing with InVideo.io: A Comprehensive Review
 
Effort Estimation Techniques used in Software Projects
Effort Estimation Techniques used in Software ProjectsEffort Estimation Techniques used in Software Projects
Effort Estimation Techniques used in Software Projects
 
Mastering Project Planning with Microsoft Project 2016.pptx
Mastering Project Planning with Microsoft Project 2016.pptxMastering Project Planning with Microsoft Project 2016.pptx
Mastering Project Planning with Microsoft Project 2016.pptx
 
Advantages of Cargo Cloud Solutions.pptx
Advantages of Cargo Cloud Solutions.pptxAdvantages of Cargo Cloud Solutions.pptx
Advantages of Cargo Cloud Solutions.pptx
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
 
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogue
 
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorEffectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryError
 
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
 
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
 
oracle 23c new features for developer and dba
oracle 23c new features for developer and dbaoracle 23c new features for developer and dba
oracle 23c new features for developer and dba
 
Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptx
 
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsStrategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero results
 
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...
 
What is Mendix and the concept of low-code development.docx
What is Mendix and the concept of low-code development.docxWhat is Mendix and the concept of low-code development.docx
What is Mendix and the concept of low-code development.docx
 
Santander Stream Processing with Apache Flink
Santander Stream Processing with Apache FlinkSantander Stream Processing with Apache Flink
Santander Stream Processing with Apache Flink
 
full course of software engineering mid term.pdf
full course of software engineering mid term.pdffull course of software engineering mid term.pdf
full course of software engineering mid term.pdf
 

Coder F#nctionnel