TIME TO MARKET
We are using F# because it considerably increases speed of
software development which is crucial for a small company with
limited development resources.
Boston-based Financial Services Firm
EFFICIENCY
F# … to reduce the amount of code required and its simplicity when
developing massive parallel computations. The performance is
phenomenal. We can now re-calculate the entire bank portfolio from scratch
in less than a second
Handelsbanken
CORRECTNESS
The efficient use of functional programming throughout the R&D cycle
helped make the cycle faster and more efficient. Less time was spent on
translating requirements, miscommunications etc. and more on producing a
fast and accurate solution quickly.
CME Group
COMPLEXITY
We have set up a complete risk management system that combines several
data sources…
When the calculation requires a proper algorithm (i.e. anything that is more
complex than a simple for loop), our choice has been F#.
London-Based Asset Management Company
CURRENCY CONVERSIONS
[<Measure>] type EUR
[<Measure>] type GBP
let rateEurGbp = 0.783M<GBP/EUR>
// Converts amount in EUR to GBP
let euroToPounds (eur:decimal<EUR>) = eur * rateEurGbp
OPTION PRICING
let euroCallValue exercisePrice actualPrice =
max (actualPrice - exercisePrice) 0.0
let euroPutValue exercisePrice actualPrice =
max (exercisePrice - actualPrice) 0.0
let butterflySpread lowPrice highPrice actualPrice =
(euroCallValue lowPrice actualPrice) +
(euroCallValue highPrice actualPrice) 2.0 * (euroCallValue ((lowPrice + highPrice) / 2.0) actualPrice)
F# KOANS
[<Koan>]
let SquareEvenNumbersWithPipelineOperator() =
(* In F#, you can use the pipeline operator to get the benefit of
the parens style with the readability of the statement style. *)
let result =
[0..5]
|> List.filter isEven
|> List.map square
AssertEquality result __