SlideShare ist ein Scribd-Unternehmen logo
1 von 36
MOBILE F#UN
P H I L L I P T R E L F O R D ( A K A S E A N ’ S D A D )
W I N D O W S A P P S L O N D O N
2 0 1 6
F#UNCTIONAL LONDONERS
• Founded Feb 2010
• 1100+ Members
• Meets every 2-4 weeks
• Topics include
– Machine Learning
– Finance
– Games
– Web
http://meetup.com/fsharplondon
VISUAL F#
THE F IN F# IS FOR FUN!
HALO 3 WITH F# SKILLS
XBLA: PATH TO GO – F# AI
F#
• Statically Typed
• Functional First
• Object Orientated
• Open Source
• .Net language
• In Visual Studio
& Xamarin Studio
F# INFLUENCES
// OCaml + Python like light syntax
let dist (x1,y1) (x2,y2) =
let x = x1 - x2 in
let y = y2 - y1 in
sqrt (x * x + y * y)
// & C# dot-driven development
let trim (s:string) =
s.Trim() F#
OCaml
Python
C#
C# + F# = BEST FRIENDS
Kaggle Testimonial
“we have a large existing code
base in C#,
…getting started with F# was an
easy decision.”
“The F# code is consistently
shorter, easier to read, easier to
refactor and contains far fewer
bugs.
…we’ve become more
productive.”
Source: http://fsharp.org/testimonials/
ASK ME ANYTHING
F# IN INDUSTRYP H I L T R E L F O R D , @ P T R E L F O R D
W I N D O W S A P P L O N D O N , 2 0 1 6
F# STARTUPS: JET.COM
$570M RAISED
ONIKIRA – DEMON KILLER:
AVAILABLE ON STEAM
F# ON FACEBOOK: MONOPOLY
F# ARCHITECTURE
VISIBLE FROM SPACE
F# LANGUAGEP H I L T R E L F O R D , @ P T R E L F O R D
W I N D O W S A P P L O N D O N , 2 0 1 6
CODE: FIZZBUZZ WITH IF/THEN/ELSE
for i = 1 to 100 do
let text =
if i % 3 = 0 && i % 5 = 0 then "FizzBuzz"
elif i % 3 = 0 then "Fizz"
elif i % 5 = 0 then "Buzz"
else i.ToString()
Console.WriteLine(text)
CODE: FIZZBUZZ WITH PATTERN
MATCHING
for i = 1 to 100 do
match i%3, i%5 with
| 0, 0 -> "FizzBuzz"
| 0, _ -> "Fizz"
| _, 0 -> "Buzz"
| _, _ -> i.ToString()
|> Console.WriteLine
CODE GOLF: FIZZBUZZ
TYPES: LIGHT SYNTAX
F#
type Person(name:string,age:int) =
/// Full name
member person.Name = name
/// Age in years
member person.Age = age
C#
public class Person
{
public Person(string name, int age)
{
_name = name;
_age = age;
}
private readonly string _name;
private readonly int _age;
/// <summary>
/// Full name
/// </summary>
public string Name
{
get { return _name; }
TYPE PROVIDERS: JSON
open FSharp.Data
type Person = JsonProvider<""" { "name":"Name", "age":64 } """>
let thomas = Person.Parse(""" { "name":"Thomas", "age":12 } """)
person.Age
SQL TYPE PROVIDER
SEAN (8) LIVE CODING AT NDC OSLO
F# FOR APPSP H I L T R E L F O R D , @ P T R E L F O R D
W I N D O W S A P P L O N D O N , 2 0 1 6
TARGET OVER 2.2 BILLION DEVICES
NATIVELY WITH F#
NATIVELY VIA .NET & MONO
• Android
• iOS
• Linux
• Mac
• Windows
• Raspberry Pi
• etc.
AND DON’T FORGET VIA WEB
Everything else with
• Fable
• Freya
• FunScript
• Suave
• WebSharper
• etc.
MOBILE WITH F#
• Xamarin Studio
– iOS
– Android
– Windows mobile
• JS
– Apache Cordova
– Appcelerator
– Sencha
– …
EXAMPLE APPS BUILT WITH F#
Learn on the Go | WP Pissed off Owls| iOS Pool | WebGL
MARIO TUTORIAL
FLAPPY BIRD WITH MONOGAME
http://tinyurl.com/funbasi
c
FUN BASIC - WINDOWS
STORE APP
F# RESOURCESP H I L T R E L F O R D , @ P T R E L F O R D
W I N D O W S A P P L O N D O N , 2 0 1 6
•F# Software Foundation
http://www.fsharp.org
software stacks
trainings teaching F# user groups snippets
mac and linux cross-platform books and tutorials
F# community open-source MonoDevelop
contributions research support
consultancy mailing list
F# KOANS
//---------------------------------------------------------------
// About Let
//
// The let keyword is one of the most fundamental parts of F#.
// You'll use it in almost every line of F# code you write, so
// let's get to know it well! (no pun intended)
//---------------------------------------------------------------
[<Koan(Sort = 2)>]
module ``about let`` =
[<Koan>]
let LetBindsANameToAValue() =
let x = 50
AssertEquality x __
SERGEY TIHON’S F# WEEKLY
BUY THE BOOK
QUESTIONS?
• Twitter
– @ptrelford
• Blog
– http://trelford.com/blog

Weitere ähnliche Inhalte

Andere mochten auch

Games with Win 8 Style by Neneng
Games with Win 8 Style by NenengGames with Win 8 Style by Neneng
Games with Win 8 Style by Neneng
Agate Studio
 
Madrid .NET Meetup: Microsoft open sources .NET!
Madrid .NET Meetup: Microsoft open sources .NET!Madrid .NET Meetup: Microsoft open sources .NET!
Madrid .NET Meetup: Microsoft open sources .NET!
Alfonso Garcia-Caro
 
Keyboard warriors #1 copenhagen performance
Keyboard warriors #1 copenhagen   performanceKeyboard warriors #1 copenhagen   performance
Keyboard warriors #1 copenhagen performance
Phillip Trelford
 

Andere mochten auch (20)

Domain Name System (DNS) Windows Server 2003
Domain Name System (DNS) Windows Server 2003Domain Name System (DNS) Windows Server 2003
Domain Name System (DNS) Windows Server 2003
 
Bdd with ``tick spec``
Bdd with ``tick spec``Bdd with ``tick spec``
Bdd with ``tick spec``
 
Examples, Examples, Examples!
Examples, Examples, Examples!Examples, Examples, Examples!
Examples, Examples, Examples!
 
CocosSharp_XHackNight_07feb
CocosSharp_XHackNight_07febCocosSharp_XHackNight_07feb
CocosSharp_XHackNight_07feb
 
Xna and mono game
Xna and mono gameXna and mono game
Xna and mono game
 
Cross-platform Game Dev w/ CocosSharp
Cross-platform Game Dev w/ CocosSharpCross-platform Game Dev w/ CocosSharp
Cross-platform Game Dev w/ CocosSharp
 
EastBay.NET - Introduction to MonoTouch
EastBay.NET - Introduction to MonoTouchEastBay.NET - Introduction to MonoTouch
EastBay.NET - Introduction to MonoTouch
 
Multyplatform and mono part 2 - Matteo Nicolotti
Multyplatform and mono part 2 - Matteo Nicolotti Multyplatform and mono part 2 - Matteo Nicolotti
Multyplatform and mono part 2 - Matteo Nicolotti
 
.NET? MonoDroid Does
.NET? MonoDroid Does.NET? MonoDroid Does
.NET? MonoDroid Does
 
Road to Success (July 1st) - Mobile Game Development Alternatives - Andrew Bu...
Road to Success (July 1st) - Mobile Game Development Alternatives - Andrew Bu...Road to Success (July 1st) - Mobile Game Development Alternatives - Andrew Bu...
Road to Success (July 1st) - Mobile Game Development Alternatives - Andrew Bu...
 
Games with Win 8 Style by Neneng
Games with Win 8 Style by NenengGames with Win 8 Style by Neneng
Games with Win 8 Style by Neneng
 
Cross platform physics games - NDC 2014
Cross platform physics games - NDC 2014Cross platform physics games - NDC 2014
Cross platform physics games - NDC 2014
 
Madrid .NET Meetup: Microsoft open sources .NET!
Madrid .NET Meetup: Microsoft open sources .NET!Madrid .NET Meetup: Microsoft open sources .NET!
Madrid .NET Meetup: Microsoft open sources .NET!
 
Introduction to CocosSharp
Introduction to CocosSharpIntroduction to CocosSharp
Introduction to CocosSharp
 
Gaming in Csharp
Gaming in CsharpGaming in Csharp
Gaming in Csharp
 
Generative Art Hands On with F#
Generative Art Hands On with F#Generative Art Hands On with F#
Generative Art Hands On with F#
 
F# in Finance Tour
F# in Finance TourF# in Finance Tour
F# in Finance Tour
 
F# for Trading - Øredev 2013
F# for Trading - Øredev 2013F# for Trading - Øredev 2013
F# for Trading - Øredev 2013
 
Keyboard warriors #1 copenhagen performance
Keyboard warriors #1 copenhagen   performanceKeyboard warriors #1 copenhagen   performance
Keyboard warriors #1 copenhagen performance
 
F# for Trading - QuantLabs 2014
F# for Trading -  QuantLabs 2014F# for Trading -  QuantLabs 2014
F# for Trading - QuantLabs 2014
 

Ähnlich wie Mobile F#un

Social Media History
Social Media HistorySocial Media History
Social Media History
idofluk
 
「デザイナー×プログラマー」で タッグを組むとこうなる 〜iPhoneアプリ「i便所」のケース〜2011/7/22 ITデザインワークショップ Fandr...
「デザイナー×プログラマー」で タッグを組むとこうなる 〜iPhoneアプリ「i便所」のケース〜2011/7/22 ITデザインワークショップ Fandr...「デザイナー×プログラマー」で タッグを組むとこうなる 〜iPhoneアプリ「i便所」のケース〜2011/7/22 ITデザインワークショップ Fandr...
「デザイナー×プログラマー」で タッグを組むとこうなる 〜iPhoneアプリ「i便所」のケース〜2011/7/22 ITデザインワークショップ Fandr...
Hitoshi Kurokawa
 

Ähnlich wie Mobile F#un (15)

Cross platform challenges and opportunities for games and interactive developers
Cross platform challenges and opportunities for games and interactive developersCross platform challenges and opportunities for games and interactive developers
Cross platform challenges and opportunities for games and interactive developers
 
Open source & mobile development - Be open, and sleep well
Open source & mobile development - Be open, and sleep wellOpen source & mobile development - Be open, and sleep well
Open source & mobile development - Be open, and sleep well
 
Aleksandar Vacić - iOS App Development iz Srbije
Aleksandar Vacić - iOS App Development iz SrbijeAleksandar Vacić - iOS App Development iz Srbije
Aleksandar Vacić - iOS App Development iz Srbije
 
Social Media History
Social Media HistorySocial Media History
Social Media History
 
Making and gaming; exploring the relation between gaming, maker spaces and Fa...
Making and gaming; exploring the relation between gaming, maker spaces and Fa...Making and gaming; exploring the relation between gaming, maker spaces and Fa...
Making and gaming; exploring the relation between gaming, maker spaces and Fa...
 
Simon Owen - Healthy Front-end Workflow - Leeds Front End
Simon Owen - Healthy Front-end Workflow - Leeds Front EndSimon Owen - Healthy Front-end Workflow - Leeds Front End
Simon Owen - Healthy Front-end Workflow - Leeds Front End
 
iOS Ecosystem @ Fiera del Radioamatore Pordenone
iOS Ecosystem @ Fiera del Radioamatore PordenoneiOS Ecosystem @ Fiera del Radioamatore Pordenone
iOS Ecosystem @ Fiera del Radioamatore Pordenone
 
Introducing Swift - and the Sunset of Our Culture?
Introducing Swift - and the Sunset of Our Culture?Introducing Swift - and the Sunset of Our Culture?
Introducing Swift - and the Sunset of Our Culture?
 
"The F# Path to Relaxation", Don Syme
"The F# Path to Relaxation", Don Syme"The F# Path to Relaxation", Don Syme
"The F# Path to Relaxation", Don Syme
 
Designing FirefoxOS style apps
Designing FirefoxOS style appsDesigning FirefoxOS style apps
Designing FirefoxOS style apps
 
「デザイナー×プログラマー」で タッグを組むとこうなる 〜iPhoneアプリ「i便所」のケース〜2011/7/22 ITデザインワークショップ Fandr...
「デザイナー×プログラマー」で タッグを組むとこうなる 〜iPhoneアプリ「i便所」のケース〜2011/7/22 ITデザインワークショップ Fandr...「デザイナー×プログラマー」で タッグを組むとこうなる 〜iPhoneアプリ「i便所」のケース〜2011/7/22 ITデザインワークショップ Fandr...
「デザイナー×プログラマー」で タッグを組むとこうなる 〜iPhoneアプリ「i便所」のケース〜2011/7/22 ITデザインワークショップ Fandr...
 
iOS development made easy
iOS development made easyiOS development made easy
iOS development made easy
 
Social Media as a Reporting Tool
Social Media as a Reporting ToolSocial Media as a Reporting Tool
Social Media as a Reporting Tool
 
Game On With NativeScript
Game On With NativeScriptGame On With NativeScript
Game On With NativeScript
 
Coffee & Pi - Fall into Pi
Coffee & Pi - Fall into PiCoffee & Pi - Fall into Pi
Coffee & Pi - Fall into Pi
 

Mehr von Phillip Trelford

F# for C# devs - NDC Oslo 2015
F# for C# devs - NDC Oslo 2015F# for C# devs - NDC Oslo 2015
F# for C# devs - NDC Oslo 2015
Phillip Trelford
 
F# for C# devs - Leeds Sharp 2015
F# for C# devs -  Leeds Sharp 2015F# for C# devs -  Leeds Sharp 2015
F# for C# devs - Leeds Sharp 2015
Phillip Trelford
 
F# Eye 4 the C# Guy - DDD Cambridge Nights 2014
F# Eye 4 the C# Guy -  DDD Cambridge Nights 2014F# Eye 4 the C# Guy -  DDD Cambridge Nights 2014
F# Eye 4 the C# Guy - DDD Cambridge Nights 2014
Phillip Trelford
 
All your types are belong to us!
All your types are belong to us!All your types are belong to us!
All your types are belong to us!
Phillip Trelford
 

Mehr von Phillip Trelford (20)

How to be a rock star developer
How to be a rock star developerHow to be a rock star developer
How to be a rock star developer
 
FSharp eye for the Haskell guy - London 2015
FSharp eye for the Haskell guy - London 2015FSharp eye for the Haskell guy - London 2015
FSharp eye for the Haskell guy - London 2015
 
Beyond lists - Copenhagen 2015
Beyond lists - Copenhagen 2015Beyond lists - Copenhagen 2015
Beyond lists - Copenhagen 2015
 
F# for C# devs - Copenhagen .Net 2015
F# for C# devs - Copenhagen .Net 2015F# for C# devs - Copenhagen .Net 2015
F# for C# devs - Copenhagen .Net 2015
 
Generative Art - Functional Vilnius 2015
Generative Art - Functional Vilnius 2015Generative Art - Functional Vilnius 2015
Generative Art - Functional Vilnius 2015
 
Beyond Lists - Functional Kats Conf Dublin 2015
Beyond Lists - Functional Kats Conf Dublin 2015Beyond Lists - Functional Kats Conf Dublin 2015
Beyond Lists - Functional Kats Conf Dublin 2015
 
FSharp On The Desktop - Birmingham FP 2015
FSharp On The Desktop - Birmingham FP 2015FSharp On The Desktop - Birmingham FP 2015
FSharp On The Desktop - Birmingham FP 2015
 
F# for C# devs - NDC Oslo 2015
F# for C# devs - NDC Oslo 2015F# for C# devs - NDC Oslo 2015
F# for C# devs - NDC Oslo 2015
 
F# for C# devs - Leeds Sharp 2015
F# for C# devs -  Leeds Sharp 2015F# for C# devs -  Leeds Sharp 2015
F# for C# devs - Leeds Sharp 2015
 
Build a compiler in 2hrs - NCrafts Paris 2015
Build a compiler in 2hrs -  NCrafts Paris 2015Build a compiler in 2hrs -  NCrafts Paris 2015
Build a compiler in 2hrs - NCrafts Paris 2015
 
Real World F# - SDD 2015
Real World F# -  SDD 2015Real World F# -  SDD 2015
Real World F# - SDD 2015
 
F# for C# devs - SDD 2015
F# for C# devs - SDD 2015F# for C# devs - SDD 2015
F# for C# devs - SDD 2015
 
Machine learning from disaster - GL.Net 2015
Machine learning from disaster  - GL.Net 2015Machine learning from disaster  - GL.Net 2015
Machine learning from disaster - GL.Net 2015
 
Write Your Own Compiler in 24 Hours
Write Your Own Compiler in 24 HoursWrite Your Own Compiler in 24 Hours
Write Your Own Compiler in 24 Hours
 
FParsec Hands On - F#unctional Londoners 2014
FParsec Hands On -  F#unctional Londoners 2014FParsec Hands On -  F#unctional Londoners 2014
FParsec Hands On - F#unctional Londoners 2014
 
F# in your pipe
F# in your pipeF# in your pipe
F# in your pipe
 
F# Eye 4 the C# Guy - DDD Cambridge Nights 2014
F# Eye 4 the C# Guy -  DDD Cambridge Nights 2014F# Eye 4 the C# Guy -  DDD Cambridge Nights 2014
F# Eye 4 the C# Guy - DDD Cambridge Nights 2014
 
FSharp for Trading - CodeMesh 2013
FSharp for Trading - CodeMesh 2013FSharp for Trading - CodeMesh 2013
FSharp for Trading - CodeMesh 2013
 
All your types are belong to us!
All your types are belong to us!All your types are belong to us!
All your types are belong to us!
 
F# Eye for the C# guy - Øredev 2013
F# Eye for the C# guy - Øredev 2013F# Eye for the C# guy - Øredev 2013
F# Eye for the C# guy - Øredev 2013
 

Kürzlich hochgeladen

AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 

Kürzlich hochgeladen (20)

The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 

Mobile F#un

  • 1. MOBILE F#UN P H I L L I P T R E L F O R D ( A K A S E A N ’ S D A D ) W I N D O W S A P P S L O N D O N 2 0 1 6
  • 2. F#UNCTIONAL LONDONERS • Founded Feb 2010 • 1100+ Members • Meets every 2-4 weeks • Topics include – Machine Learning – Finance – Games – Web http://meetup.com/fsharplondon
  • 4. THE F IN F# IS FOR FUN!
  • 5. HALO 3 WITH F# SKILLS
  • 6. XBLA: PATH TO GO – F# AI
  • 7. F# • Statically Typed • Functional First • Object Orientated • Open Source • .Net language • In Visual Studio & Xamarin Studio
  • 8. F# INFLUENCES // OCaml + Python like light syntax let dist (x1,y1) (x2,y2) = let x = x1 - x2 in let y = y2 - y1 in sqrt (x * x + y * y) // & C# dot-driven development let trim (s:string) = s.Trim() F# OCaml Python C#
  • 9. C# + F# = BEST FRIENDS Kaggle Testimonial “we have a large existing code base in C#, …getting started with F# was an easy decision.” “The F# code is consistently shorter, easier to read, easier to refactor and contains far fewer bugs. …we’ve become more productive.” Source: http://fsharp.org/testimonials/
  • 11. F# IN INDUSTRYP H I L T R E L F O R D , @ P T R E L F O R D W I N D O W S A P P L O N D O N , 2 0 1 6
  • 13. ONIKIRA – DEMON KILLER: AVAILABLE ON STEAM
  • 14. F# ON FACEBOOK: MONOPOLY
  • 16. F# LANGUAGEP H I L T R E L F O R D , @ P T R E L F O R D W I N D O W S A P P L O N D O N , 2 0 1 6
  • 17. CODE: FIZZBUZZ WITH IF/THEN/ELSE for i = 1 to 100 do let text = if i % 3 = 0 && i % 5 = 0 then "FizzBuzz" elif i % 3 = 0 then "Fizz" elif i % 5 = 0 then "Buzz" else i.ToString() Console.WriteLine(text)
  • 18. CODE: FIZZBUZZ WITH PATTERN MATCHING for i = 1 to 100 do match i%3, i%5 with | 0, 0 -> "FizzBuzz" | 0, _ -> "Fizz" | _, 0 -> "Buzz" | _, _ -> i.ToString() |> Console.WriteLine
  • 20. TYPES: LIGHT SYNTAX F# type Person(name:string,age:int) = /// Full name member person.Name = name /// Age in years member person.Age = age C# public class Person { public Person(string name, int age) { _name = name; _age = age; } private readonly string _name; private readonly int _age; /// <summary> /// Full name /// </summary> public string Name { get { return _name; }
  • 21. TYPE PROVIDERS: JSON open FSharp.Data type Person = JsonProvider<""" { "name":"Name", "age":64 } """> let thomas = Person.Parse(""" { "name":"Thomas", "age":12 } """) person.Age
  • 23. SEAN (8) LIVE CODING AT NDC OSLO
  • 24. F# FOR APPSP H I L T R E L F O R D , @ P T R E L F O R D W I N D O W S A P P L O N D O N , 2 0 1 6
  • 25. TARGET OVER 2.2 BILLION DEVICES NATIVELY WITH F# NATIVELY VIA .NET & MONO • Android • iOS • Linux • Mac • Windows • Raspberry Pi • etc. AND DON’T FORGET VIA WEB Everything else with • Fable • Freya • FunScript • Suave • WebSharper • etc.
  • 26. MOBILE WITH F# • Xamarin Studio – iOS – Android – Windows mobile • JS – Apache Cordova – Appcelerator – Sencha – …
  • 27. EXAMPLE APPS BUILT WITH F# Learn on the Go | WP Pissed off Owls| iOS Pool | WebGL
  • 29. FLAPPY BIRD WITH MONOGAME
  • 31. F# RESOURCESP H I L T R E L F O R D , @ P T R E L F O R D W I N D O W S A P P L O N D O N , 2 0 1 6
  • 32. •F# Software Foundation http://www.fsharp.org software stacks trainings teaching F# user groups snippets mac and linux cross-platform books and tutorials F# community open-source MonoDevelop contributions research support consultancy mailing list
  • 33. F# KOANS //--------------------------------------------------------------- // About Let // // The let keyword is one of the most fundamental parts of F#. // You'll use it in almost every line of F# code you write, so // let's get to know it well! (no pun intended) //--------------------------------------------------------------- [<Koan(Sort = 2)>] module ``about let`` = [<Koan>] let LetBindsANameToAValue() = let x = 50 AssertEquality x __
  • 36. QUESTIONS? • Twitter – @ptrelford • Blog – http://trelford.com/blog

Hinweis der Redaktion

  1. MonoDevelop, Emacs & VIM
  2. http://fsharp.org/testimonials/#kaggle-1 Don’t throw out the baby with the bath water
  3. http://techgroup.jet.com/index.html https://www.crunchbase.com/organization/jet#/entity
  4. http://store.steampowered.com/app/310850/