Functional Programming with F#: Getting Started & Basic Concepts
-
Upload
alex-casquete -
Category
Software
-
view
350 -
download
0
Transcript of Functional Programming with F#: Getting Started & Basic Concepts
FUNCTIONAL PROGRAMMINGWITH F#Getting Started & Basic Concepts
AGENDA
Basic Concepts
Immutable Collections: List & Sequence
OOP and .NET Framework support
Async
Xamarin: iOS + Android
MVC & Windows 8
ABOUT US
ALEX CASQUETE
acasquete
Software Developer at Plain ConceptsMVP Client Development
JUAN M. GÓMEZContractor Software EngineerFounder Orchard HispanoXamarin Insider
[email protected]_jmgomez_
THE CHALLENGES
Process large datasets
Scale to processors & computers
Easily testing
Declarative logic
IMPERATIVE
“Take the next ticket from a list. If theticket is not printed, send to print. If there are more tickets in the list,
go to the beginning.”
DECLARATIVE“Run the first command for
every ticket for which the secondcommand returns true.”
DECLARATIVE“Send to print every ticket
that is not printed.”
WHICH ONE DO YOU PREFER?
“Take the next ticket from a list. If the
ticket is not printed, send to print. If there
are more tickets in thelist, go to thebeginning.”
“Send to print everyticket that is not
printed.”
THINKINGDIFΞRΞNTLY
Say “what” rather than “how”
THINKING DIFΞRΞNTLY IN C#
Imperative
foreach (Ticket t in Tickets){
if (!t.IsPrinted){
Print(t);}
}
Declarative
Tickets .Where(t=>!t.IsPrinted).ToList().ForEach(t => Print(t));
Demos, demos, demosBasic Concepts, collections, async, everything…
RecapBasic concepts, Five C’s, Understanding F#
FUNCTIONAL BASIC CONCEPTS
Immutability
Recursion
Higher order
WHY USE F#?FIVE C’s
Conciseness
Convenience
Correctness
Concurrency
Completeness
Understanding F#The vision of F#
Data, Services, Information
Access
Transformations, Analysis,
Algorithms, Code, Parallel
Presentation, Publication, Experience
F# 3.0 F# 2.0 C#, HTML5, JS
BOOKS
MORE RESOURCES
http://Fsharp.org
http://FsharpForFunAndProfit.com
http://www.fssnip.net
THANKS!
ANY QUESTION?
ALEX CASQUETE
acasquete
Software Developer at Plain ConceptsMVP Client Development
JUAN M. GÓMEZContractor Software EngineerFounder Orchard HispanoXamarin Insider
[email protected]_jmgomez_