SlideShare ist ein Scribd-Unternehmen logo
1 von 23
Getting the MVVM kicked out of your F#'n Monads  Richard Minerich F# MVP of the Year Senior Researcher, Bayard Rock @Rickasaurus /  [email_address]   Fill this space with whatever you want (graphic, logo, whatever)
Time Warp back to 6 th  Grade ,[object Object],[object Object],[object Object]
What about functions? ,[object Object],[object Object],[object Object],[object Object],[object Object]
>> is like add for functions ,[object Object],[object Object],[object Object],[object Object],[object Object]
5 + 0 = 5 and 3 * 1  = 3 ,[object Object]
5 + 0 = 5 and 3 * 1  = 3 ,[object Object],[object Object],[object Object],[object Object]
functions are like numbers ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
(2 / 3) / 4 isn’t 2 / (3 / 4) but,  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
(1 - 2) - 3 isn’t 1 - (2 - 3) but, ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
(1 - 2) - 3 isn’t 1 - (2 - 3) cont. ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
School’s out! ,[object Object]
One Style of Abstraction ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
It works with functions too! ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Computation Expressions ,[object Object]
Computation Expressions! ,[object Object],[object Object]
What can you manipulate? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Let’s take a look at a simple CE ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
It goes much deeper. ,[object Object],[object Object],[object Object],[object Object]
Option ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Maybe ,[object Object]
“ F# 2.0 is a book that assumes you are a professional,  and as such, does not waste your time with a lot of fluff.”
Check out F#! ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
We thank the following companies for their gracious sponsorship Platinum Sponsor Gold Sponsors Silver Sponsors

Weitere Àhnliche Inhalte

Was ist angesagt?

Distributive Property
Distributive PropertyDistributive Property
Distributive PropertyJessca Lundin
 
1113 ch 11 day 13
1113 ch 11 day 131113 ch 11 day 13
1113 ch 11 day 13festivalelmo
 
How Can We Evaluate Composition Of Functions
How Can We Evaluate Composition Of FunctionsHow Can We Evaluate Composition Of Functions
How Can We Evaluate Composition Of Functionsguest73f464
 
Intro to exponents edmodo 2013 14
Intro to exponents edmodo 2013 14Intro to exponents edmodo 2013 14
Intro to exponents edmodo 2013 14shumwayc
 
Order of operations
Order of operationsOrder of operations
Order of operationssonnynexus
 
J3 j3bu5t3r5
J3 j3bu5t3r5J3 j3bu5t3r5
J3 j3bu5t3r5gsantos15
 
Quadratic Expressions
Quadratic ExpressionsQuadratic Expressions
Quadratic Expressions2IIM
 
Algebra 1 Unit 2.7 Distributive Property
Algebra 1 Unit 2.7 Distributive PropertyAlgebra 1 Unit 2.7 Distributive Property
Algebra 1 Unit 2.7 Distributive PropertyJaqueline Vallejo
 
Reconstructing Textual Documents from n-grams
Reconstructing Textual Documents from n-gramsReconstructing Textual Documents from n-grams
Reconstructing Textual Documents from n-gramsmatthigalle
 
TechMathII - 2.2 - Equations and Formulas
TechMathII - 2.2 - Equations and FormulasTechMathII - 2.2 - Equations and Formulas
TechMathII - 2.2 - Equations and Formulaslmrhodes
 
Presentation4
Presentation4Presentation4
Presentation4Jorge707r
 
Square of a binomial
Square of a binomialSquare of a binomial
Square of a binomialMartinGeraldine
 
[ACM-ICPC] Tree Isomorphism
[ACM-ICPC] Tree Isomorphism[ACM-ICPC] Tree Isomorphism
[ACM-ICPC] Tree IsomorphismChih-Hsuan Kuo
 
Elements of a sequence
Elements of a sequenceElements of a sequence
Elements of a sequenceMartinGeraldine
 

Was ist angesagt? (18)

Distributive Property
Distributive PropertyDistributive Property
Distributive Property
 
1113 ch 11 day 13
1113 ch 11 day 131113 ch 11 day 13
1113 ch 11 day 13
 
How Can We Evaluate Composition Of Functions
How Can We Evaluate Composition Of FunctionsHow Can We Evaluate Composition Of Functions
How Can We Evaluate Composition Of Functions
 
Intro to exponents edmodo 2013 14
Intro to exponents edmodo 2013 14Intro to exponents edmodo 2013 14
Intro to exponents edmodo 2013 14
 
Parentesi
ParentesiParentesi
Parentesi
 
Order of operations
Order of operationsOrder of operations
Order of operations
 
J3 j3bu5t3r5
J3 j3bu5t3r5J3 j3bu5t3r5
J3 j3bu5t3r5
 
Quadratic Expressions
Quadratic ExpressionsQuadratic Expressions
Quadratic Expressions
 
Algebra 1 Unit 2.7 Distributive Property
Algebra 1 Unit 2.7 Distributive PropertyAlgebra 1 Unit 2.7 Distributive Property
Algebra 1 Unit 2.7 Distributive Property
 
Reconstructing Textual Documents from n-grams
Reconstructing Textual Documents from n-gramsReconstructing Textual Documents from n-grams
Reconstructing Textual Documents from n-grams
 
TechMathII - 2.2 - Equations and Formulas
TechMathII - 2.2 - Equations and FormulasTechMathII - 2.2 - Equations and Formulas
TechMathII - 2.2 - Equations and Formulas
 
Cube of binomial
Cube of binomialCube of binomial
Cube of binomial
 
Presentation4
Presentation4Presentation4
Presentation4
 
Square of a binomial
Square of a binomialSquare of a binomial
Square of a binomial
 
[ACM-ICPC] Tree Isomorphism
[ACM-ICPC] Tree Isomorphism[ACM-ICPC] Tree Isomorphism
[ACM-ICPC] Tree Isomorphism
 
133467 p3a2
133467 p3a2133467 p3a2
133467 p3a2
 
2
22
2
 
Elements of a sequence
Elements of a sequenceElements of a sequence
Elements of a sequence
 

Ähnlich wie Getting the MVVM Kicked Out of Your F#'n Monads

A Skeptics guide to functional style javascript
A Skeptics guide to functional style javascriptA Skeptics guide to functional style javascript
A Skeptics guide to functional style javascriptjonathanfmills
 
Python quickstart for programmers: Python Kung Fu
Python quickstart for programmers: Python Kung FuPython quickstart for programmers: Python Kung Fu
Python quickstart for programmers: Python Kung Fuclimatewarrior
 
Compose Method
Compose MethodCompose Method
Compose Methodguestcb0002
 
Compose Method
Compose MethodCompose Method
Compose MethodGeoff Burns
 
Pythonlearn-08-Lists.pptx
Pythonlearn-08-Lists.pptxPythonlearn-08-Lists.pptx
Pythonlearn-08-Lists.pptxMihirDatir
 
F# Presentation
F# PresentationF# Presentation
F# Presentationmrkurt
 
Pythonic Math
Pythonic MathPythonic Math
Pythonic MathKirby Urner
 
Sorting techniques
Sorting techniques Sorting techniques
Sorting techniques JayeshGadhave1
 
Python elements list you can study .pdf
Python elements list you can study  .pdfPython elements list you can study  .pdf
Python elements list you can study .pdfAUNGHTET61
 
Mixing functional and object oriented approaches to programming in C#
Mixing functional and object oriented approaches to programming in C#Mixing functional and object oriented approaches to programming in C#
Mixing functional and object oriented approaches to programming in C#Mark Needham
 
Mixing Functional and Object Oriented Approaches to Programming in C#
Mixing Functional and Object Oriented Approaches to Programming in C#Mixing Functional and Object Oriented Approaches to Programming in C#
Mixing Functional and Object Oriented Approaches to Programming in C#Skills Matter
 
Thinking Functionally In Ruby
Thinking Functionally In RubyThinking Functionally In Ruby
Thinking Functionally In RubyRoss Lawley
 
Calculation techniques in numbers
Calculation techniques in numbersCalculation techniques in numbers
Calculation techniques in numberssealih
 
Begin with Python
Begin with PythonBegin with Python
Begin with PythonNarong Intiruk
 
search_sort Search sortSearch sortSearch sortSearch sort
search_sort Search sortSearch sortSearch sortSearch sortsearch_sort Search sortSearch sortSearch sortSearch sort
search_sort Search sortSearch sortSearch sortSearch sortShanmuganathan C
 
Python for High School Programmers
Python for High School ProgrammersPython for High School Programmers
Python for High School ProgrammersSiva Arunachalam
 
çŹŹïŒ–ć›ž é–ąæ•°ăšăƒ•ăƒ­ăƒŒćˆ¶ćŸĄ
çŹŹïŒ–ć›ž é–ąæ•°ăšăƒ•ăƒ­ăƒŒćˆ¶ćŸĄçŹŹïŒ–ć›ž é–ąæ•°ăšăƒ•ăƒ­ăƒŒćˆ¶ćŸĄ
çŹŹïŒ–ć›ž é–ąæ•°ăšăƒ•ăƒ­ăƒŒćˆ¶ćŸĄWataru Shito
 
Property Of Numbers
Property Of NumbersProperty Of Numbers
Property Of NumbersJessca Lundin
 

Ähnlich wie Getting the MVVM Kicked Out of Your F#'n Monads (20)

A Skeptics guide to functional style javascript
A Skeptics guide to functional style javascriptA Skeptics guide to functional style javascript
A Skeptics guide to functional style javascript
 
Python quickstart for programmers: Python Kung Fu
Python quickstart for programmers: Python Kung FuPython quickstart for programmers: Python Kung Fu
Python quickstart for programmers: Python Kung Fu
 
Compose Method
Compose MethodCompose Method
Compose Method
 
Compose Method
Compose MethodCompose Method
Compose Method
 
Pythonlearn-08-Lists.pptx
Pythonlearn-08-Lists.pptxPythonlearn-08-Lists.pptx
Pythonlearn-08-Lists.pptx
 
R tutorial (R program 101)
R tutorial (R program 101)R tutorial (R program 101)
R tutorial (R program 101)
 
F# Presentation
F# PresentationF# Presentation
F# Presentation
 
Promise
PromisePromise
Promise
 
Pythonic Math
Pythonic MathPythonic Math
Pythonic Math
 
Sorting techniques
Sorting techniques Sorting techniques
Sorting techniques
 
Python elements list you can study .pdf
Python elements list you can study  .pdfPython elements list you can study  .pdf
Python elements list you can study .pdf
 
Mixing functional and object oriented approaches to programming in C#
Mixing functional and object oriented approaches to programming in C#Mixing functional and object oriented approaches to programming in C#
Mixing functional and object oriented approaches to programming in C#
 
Mixing Functional and Object Oriented Approaches to Programming in C#
Mixing Functional and Object Oriented Approaches to Programming in C#Mixing Functional and Object Oriented Approaches to Programming in C#
Mixing Functional and Object Oriented Approaches to Programming in C#
 
Thinking Functionally In Ruby
Thinking Functionally In RubyThinking Functionally In Ruby
Thinking Functionally In Ruby
 
Calculation techniques in numbers
Calculation techniques in numbersCalculation techniques in numbers
Calculation techniques in numbers
 
Begin with Python
Begin with PythonBegin with Python
Begin with Python
 
search_sort Search sortSearch sortSearch sortSearch sort
search_sort Search sortSearch sortSearch sortSearch sortsearch_sort Search sortSearch sortSearch sortSearch sort
search_sort Search sortSearch sortSearch sortSearch sort
 
Python for High School Programmers
Python for High School ProgrammersPython for High School Programmers
Python for High School Programmers
 
çŹŹïŒ–ć›ž é–ąæ•°ăšăƒ•ăƒ­ăƒŒćˆ¶ćŸĄ
çŹŹïŒ–ć›ž é–ąæ•°ăšăƒ•ăƒ­ăƒŒćˆ¶ćŸĄçŹŹïŒ–ć›ž é–ąæ•°ăšăƒ•ăƒ­ăƒŒćˆ¶ćŸĄ
çŹŹïŒ–ć›ž é–ąæ•°ăšăƒ•ăƒ­ăƒŒćˆ¶ćŸĄ
 
Property Of Numbers
Property Of NumbersProperty Of Numbers
Property Of Numbers
 

Mehr von Richard Minerich

How we use functional programming to find the bad guys @ Build Stuff LT and U...
How we use functional programming to find the bad guys @ Build Stuff LT and U...How we use functional programming to find the bad guys @ Build Stuff LT and U...
How we use functional programming to find the bad guys @ Build Stuff LT and U...Richard Minerich
 
GHCi: More Awesome Than You Thought
GHCi: More Awesome Than You ThoughtGHCi: More Awesome Than You Thought
GHCi: More Awesome Than You ThoughtRichard Minerich
 
Functional Ideas for a Cloudy Future
Functional Ideas for a Cloudy FutureFunctional Ideas for a Cloudy Future
Functional Ideas for a Cloudy FutureRichard Minerich
 
How you can get started with F# today
How you can get started with F# todayHow you can get started with F# today
How you can get started with F# todayRichard Minerich
 
F# in the Classroom and the Lab
F# in the Classroom and the LabF# in the Classroom and the Lab
F# in the Classroom and the LabRichard Minerich
 

Mehr von Richard Minerich (7)

How we use functional programming to find the bad guys @ Build Stuff LT and U...
How we use functional programming to find the bad guys @ Build Stuff LT and U...How we use functional programming to find the bad guys @ Build Stuff LT and U...
How we use functional programming to find the bad guys @ Build Stuff LT and U...
 
GHCi: More Awesome Than You Thought
GHCi: More Awesome Than You ThoughtGHCi: More Awesome Than You Thought
GHCi: More Awesome Than You Thought
 
Functional Ideas for a Cloudy Future
Functional Ideas for a Cloudy FutureFunctional Ideas for a Cloudy Future
Functional Ideas for a Cloudy Future
 
F# and the DLR
F# and the DLRF# and the DLR
F# and the DLR
 
Fun and Games in F#
Fun and Games in F#Fun and Games in F#
Fun and Games in F#
 
How you can get started with F# today
How you can get started with F# todayHow you can get started with F# today
How you can get started with F# today
 
F# in the Classroom and the Lab
F# in the Classroom and the LabF# in the Classroom and the Lab
F# in the Classroom and the Lab
 

KĂŒrzlich hochgeladen

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024The Digital Insurer
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
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
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel AraĂșjo
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 

KĂŒrzlich hochgeladen (20)

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 

Getting the MVVM Kicked Out of Your F#'n Monads

  • 1. Getting the MVVM kicked out of your F#'n Monads Richard Minerich F# MVP of the Year Senior Researcher, Bayard Rock @Rickasaurus / [email_address] Fill this space with whatever you want (graphic, logo, whatever)
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21. “ F# 2.0 is a book that assumes you are a professional, and as such, does not waste your time with a lot of fluff.”
  • 22.
  • 23. We thank the following companies for their gracious sponsorship Platinum Sponsor Gold Sponsors Silver Sponsors

Hinweis der Redaktion

  1. Where we put the parens doesn’t matter, the result will be equal
  2. We can combine the functions by calling them one after another, but this isn’t really an operation, just passing
  3. This ends up having same effect as stacking functions inside calls to each other, but is much more flexible. Now, we can do a lot of things with functions that would could only do with numbers before.
  4. This is called the identity F# comes with the id function built in
  5. This is called the identity F# comes with the id function built in
  6. This is associativity all stateless functions share this property because execution is delayed
  7. The >> operator demands associtivity and so everything must be defined in a way that enforces it
  8. Because minusTwo, minusOne and minusThree are really the same as addNegativeOne, addNegativeTwo and addNegativeThree The order of calculation is in the order in which things are appended.
  9. For this same reason, our addition functions have exactly the same properties as addition itself. You can put parans anywhere you want but you can’t reorder without breaking the function
  10. But first we need to revisit some very basic math. Trust me, it will be worth it.
  11. Computation expressions let us define the relationships between things in a specific context. Let’s take this apart.
  12. But don’t worry, we’ll take it slow
  13. Let’s take small steps first. Look at this code.
  14. With this pattern, everything is designed in terms of merging containers, putting things in the container or pulling things out
  15. With a maybe monad, we can pretend like the maybe isn’t even there