Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Building Android and iOS Apps in F#
Search
Bernard Hsu
September 25, 2014
Programming
1
100
Building Android and iOS Apps in F#
F# talk given for Chicago Mobile .NET developers meetup September 25, 2014 at Microsoft Chicago
Bernard Hsu
September 25, 2014
Tweet
Share
More Decks by Bernard Hsu
See All by Bernard Hsu
New Drug Approvals 2014
bbhsu2
1
1.9k
Other Decks in Programming
See All in Programming
Ruby Parser progress report 2025
yui_knk
1
260
Processing Gem ベースの、2D レトロゲームエンジンの開発
tokujiros
2
120
CloudflareのChat Agent Starter Kitで簡単!AIチャットボット構築
syumai
1
330
print("Hello, World")
eddie
1
240
tool ディレクティブを導入してみた感想
sgash708
1
160
Improving my own Ruby thereafter
sisshiki1969
1
150
Kiroで始めるAI-DLC
kaonash
2
510
【第4回】関東Kaggler会「Kaggleは執筆に役立つ」
mipypf
0
1k
go test -json そして testing.T.Attr / Kyoto.go #63
utgwkk
1
210
「手軽で便利」に潜む罠。 Popover API を WCAG 2.2の視点で安全に使うには
taitotnk
0
260
詳解!defer panic recover のしくみ / Understanding defer, panic, and recover
convto
0
210
ProxyによるWindow間RPC機構の構築
syumai
1
510
Featured
See All Featured
Git: the NoSQL Database
bkeepers
PRO
431
66k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.4k
jQuery: Nuts, Bolts and Bling
dougneiner
64
7.9k
For a Future-Friendly Web
brad_frost
179
9.9k
Agile that works and the tools we love
rasmusluckow
330
21k
Code Reviewing Like a Champion
maltzj
525
40k
We Have a Design System, Now What?
morganepeng
53
7.8k
Site-Speed That Sticks
csswizardry
10
800
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
Fireside Chat
paigeccino
39
3.6k
The Language of Interfaces
destraynor
160
25k
RailsConf 2023
tenderlove
30
1.2k
Transcript
Building Android and iOS Apps in F# Bernard Hsu @BernardShoe
Founder, All Good People LLC www.letsthinkabout.us (Android, iOS) |> F# |> Xamarin
John Backus, October 1956 Credit: http://backreaction.blogspot.com/2007/04/fortran-at-50-inventor-john-backus.html
John Backus, 1957 + = <3
None
From LSODE Pack Alan C Hindmarsh 10/23/1978
August 1978 http://bit.ly/backus_fun
http://bit.ly/backus_fun
Lisp, 1959
Functional languages attract me because of their simplicity even when
solving complex tasks…. A good functional program is like a beautiful poem: you see the pieces of a ‘solution’ come together. -Don Syme, Creator F# https://www.simple-talk.com/opinion/geek-of-the- week/don-syme-geek-of-the-week/
http://www.tiobe.com/index.php/c ontent/paperinfo/tpci/index.html
The Tao of Functional Programming 1.Immutable Data 2. Function Composition
3. Pattern Matching 4. Lazy Evaluation |> http://bit.ly/backus_fun
1. Immutable Data • No variables, only values • No
imperative constructs • For, While loops • No mutable Arrays • No mutable Objects • No mutable strings http://bit.ly/backus_fun
1. Immutable Data Imperative Functional Snippets from http://blogs.msdn.com/b/doriancorompt/archive/2012/01/08/1-recursion-where-are-my-for-while-loops.aspx
1. Immutable Data Imperative Functional
The Tao of Functional Programming 1. Immutable Data 2.Function Composition
3. Pattern Matching 4. Lazy Evaluation |>
2. Function Composition Pipe-Forward Operator |> numbers Seq. map square
Seq.sum |> |> F# |> (i <3)
2. Function Composition Function Currying
The Tao of Functional Programming 1. Immutable Data 2. Function
Composition 3.Pattern Matching 4. Lazy Evaluation |>
3. Pattern Matching Switch – Case statements on steroids
3. Pattern Matching
The Tao of Functional Programming 1. Immutable Data 2. Function
Composition 3. Pattern Matching 4.Lazy Evaluation |>
4. Lazy Evaluation let x = Lazy<int>.Create(fun () -> printfn
"Evaluating x..."; 10) let y = lazy(printfn "Evaluating y..."; x.Value + x.Value)
Demos • F# Data • http://api.worldbank.org/countries/us/indicators/SP.POP.TOTL?date=2013
Demos • Game of Life • http://www.letsthinkabout.us/post/android-game-of-life • http://www.emergentmind.com/game-of-life
F# Xamarin • Tools are ready • But not up
to C#-par • iOS and Android are OO • Cannot write “pure” functional code • Good for use in Model
Building Android and iOS Apps in F# Bernard Hsu @BernardShoe
Founder, All Good People LLC www.letsthinkabout.us (Android, iOS) |> |> F# Xamarin