Why Hymans Use F#
-
Upload
keith-harrison -
Category
Technology
-
view
918 -
download
0
description
Transcript of Why Hymans Use F#
![Page 1: Why Hymans Use F#](https://reader036.fdocuments.us/reader036/viewer/2022062703/554ebe0eb4c905064d8b4727/html5/thumbnails/1.jpg)
Keith Harrison
Why Hymans Use F#
![Page 2: Why Hymans Use F#](https://reader036.fdocuments.us/reader036/viewer/2022062703/554ebe0eb4c905064d8b4727/html5/thumbnails/2.jpg)
Risk ModellingActuarial Consultancy
![Page 3: Why Hymans Use F#](https://reader036.fdocuments.us/reader036/viewer/2022062703/554ebe0eb4c905064d8b4727/html5/thumbnails/3.jpg)
Port Legacy System
![Page 4: Why Hymans Use F#](https://reader036.fdocuments.us/reader036/viewer/2022062703/554ebe0eb4c905064d8b4727/html5/thumbnails/4.jpg)
Familiar
![Page 5: Why Hymans Use F#](https://reader036.fdocuments.us/reader036/viewer/2022062703/554ebe0eb4c905064d8b4727/html5/thumbnails/5.jpg)
Composable
![Page 6: Why Hymans Use F#](https://reader036.fdocuments.us/reader036/viewer/2022062703/554ebe0eb4c905064d8b4727/html5/thumbnails/6.jpg)
Pragmatic
![Page 7: Why Hymans Use F#](https://reader036.fdocuments.us/reader036/viewer/2022062703/554ebe0eb4c905064d8b4727/html5/thumbnails/7.jpg)
Familiar
![Page 8: Why Hymans Use F#](https://reader036.fdocuments.us/reader036/viewer/2022062703/554ebe0eb4c905064d8b4727/html5/thumbnails/8.jpg)
public class Multiplier { public int Factor;
public int Calculate(int value) { return value * Factor; }}
var tenMultiplier = new Multiplier { Factor = 10 };var result = tenMultiplier.Calculate(2);
![Page 9: Why Hymans Use F#](https://reader036.fdocuments.us/reader036/viewer/2022062703/554ebe0eb4c905064d8b4727/html5/thumbnails/9.jpg)
let createMultiplier (factor) = fun x -> x * factor let multiplyByTen = createMultiplier(10)
let result = multiplyByTen(2)
![Page 10: Why Hymans Use F#](https://reader036.fdocuments.us/reader036/viewer/2022062703/554ebe0eb4c905064d8b4727/html5/thumbnails/10.jpg)
Composable
![Page 11: Why Hymans Use F#](https://reader036.fdocuments.us/reader036/viewer/2022062703/554ebe0eb4c905064d8b4727/html5/thumbnails/11.jpg)
let filter people = let results = new List<Person>() for person in people do if person.Age > 30 then results.Add(person) results
![Page 12: Why Hymans Use F#](https://reader036.fdocuments.us/reader036/viewer/2022062703/554ebe0eb4c905064d8b4727/html5/thumbnails/12.jpg)
let filter people age = let results = new List<Person>() for person in people do if person.Age > age then results.Add(person) results
![Page 13: Why Hymans Use F#](https://reader036.fdocuments.us/reader036/viewer/2022062703/554ebe0eb4c905064d8b4727/html5/thumbnails/13.jpg)
let filter people = let results = new List<Person>() for person in people do if person.Sex = Sex.Male then results.Add(person) results
![Page 14: Why Hymans Use F#](https://reader036.fdocuments.us/reader036/viewer/2022062703/554ebe0eb4c905064d8b4727/html5/thumbnails/14.jpg)
let filter filterFunction people = let results = new List<Person>() for person in people do if filterFunction() then results.Add(person) results
![Page 15: Why Hymans Use F#](https://reader036.fdocuments.us/reader036/viewer/2022062703/554ebe0eb4c905064d8b4727/html5/thumbnails/15.jpg)
let filter filterFunction people = let results = new List<Person>() for person in people do if filterFunction() then results.Add(person) results
filter (fun p -> p.Age > 30) personListfilter (fun p -> p.Age > 40) personListfilter (fun p -> p.Sex = Sex.Male) personList
![Page 16: Why Hymans Use F#](https://reader036.fdocuments.us/reader036/viewer/2022062703/554ebe0eb4c905064d8b4727/html5/thumbnails/16.jpg)
let isOver30 p = p.Age > 30let isOver40 p = p.Age > 40let isMale p = p.Sex = Sex.Male
filter isOver30 personListfilter isOver40 personListfilter isMale personList
![Page 17: Why Hymans Use F#](https://reader036.fdocuments.us/reader036/viewer/2022062703/554ebe0eb4c905064d8b4727/html5/thumbnails/17.jpg)
filter isOver30 personList
personList |> filter isOver30
![Page 18: Why Hymans Use F#](https://reader036.fdocuments.us/reader036/viewer/2022062703/554ebe0eb4c905064d8b4727/html5/thumbnails/18.jpg)
personList |> filter isOver30 |> filter isMale
![Page 19: Why Hymans Use F#](https://reader036.fdocuments.us/reader036/viewer/2022062703/554ebe0eb4c905064d8b4727/html5/thumbnails/19.jpg)
Pragmatic
![Page 20: Why Hymans Use F#](https://reader036.fdocuments.us/reader036/viewer/2022062703/554ebe0eb4c905064d8b4727/html5/thumbnails/20.jpg)
F#
Functional Imperative Object Oriented
![Page 21: Why Hymans Use F#](https://reader036.fdocuments.us/reader036/viewer/2022062703/554ebe0eb4c905064d8b4727/html5/thumbnails/21.jpg)
![Page 22: Why Hymans Use F#](https://reader036.fdocuments.us/reader036/viewer/2022062703/554ebe0eb4c905064d8b4727/html5/thumbnails/22.jpg)
Familiar
Composable
Pragmatic
![Page 23: Why Hymans Use F#](https://reader036.fdocuments.us/reader036/viewer/2022062703/554ebe0eb4c905064d8b4727/html5/thumbnails/23.jpg)
![Page 24: Why Hymans Use F#](https://reader036.fdocuments.us/reader036/viewer/2022062703/554ebe0eb4c905064d8b4727/html5/thumbnails/24.jpg)
Books
![Page 25: Why Hymans Use F#](https://reader036.fdocuments.us/reader036/viewer/2022062703/554ebe0eb4c905064d8b4727/html5/thumbnails/25.jpg)
We’re Hiring
• www.hymans.co.uk/contact-us.aspx• http://careers.stackoverflow.com/uk/company/hymans-robertson
• [email protected]• @KeithDHar• http://www.linkedin.com/in/keithdharrison
![Page 26: Why Hymans Use F#](https://reader036.fdocuments.us/reader036/viewer/2022062703/554ebe0eb4c905064d8b4727/html5/thumbnails/26.jpg)
Questions?