why hymans use f#
DESCRIPTION
Talk given at http://techmeetup.co.uk/ on 25th of September 2013. Contact me at: @KeithDHar [email protected] http://www.linkedin.com/in/keithdharrison We're hiring F# developers: http://careers.stackoverflow.com/uk/company/hymans-robertsonTRANSCRIPT
Keith Harrison
Why Hymans Use F#
Risk ModellingActuarial Consultancy
Port Legacy System
Familiar
Composable
Pragmatic
Familiar
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);
let createMultiplier (factor) = fun x -> x * factor let multiplyByTen = createMultiplier(10)
let result = multiplyByTen(2)
Composable
let filter people = let results = new List<Person>() for person in people do if person.Age > 30 then results.Add(person) results
let filter people age = let results = new List<Person>() for person in people do if person.Age > age then results.Add(person) results
let filter people = let results = new List<Person>() for person in people do if person.Sex = Sex.Male then results.Add(person) results
let filter filterFunction people = let results = new List<Person>() for person in people do if filterFunction() then results.Add(person) results
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
let isOver30 p = p.Age > 30let isOver40 p = p.Age > 40let isMale p = p.Sex = Sex.Male
filter isOver30 personListfilter isOver40 personListfilter isMale personList
filter isOver30 personList
personList |> filter isOver30
personList |> filter isOver30 |> filter isMale
Pragmatic
F#
Functional Imperative Object Oriented
Familiar
Composable
Pragmatic
Books
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
Questions?