Functional Programming in Financial Markets (Experience Report)Experience Report
We present a case-study of using functional programming in the real world at a very large scale. At
Standard Chartered Bank, Haskell is used in a core software library supporting the entire
Markets division – a business line with 3 billion USD operating income in 2023.
Typed functional programming is used across the entire tech stack, including foundational APIs and CLIs for deal
valuation and risk analysis, server-side components for long-running batches or sub-second RESTful services, and
end-user GUIs. Thousands of users across Markets interact with software built using functional programming,
and over one hundred write functional code.
In this experience report we focus on how we leverage functional programming to orchestrate type-driven large-scale
pricing workflows. The same API can be used to price one trade locally, or millions of trades across thousands of
cloud nodes. Different parts of the computation can be run and inspected individually, and recomputing one part
triggers recalculation of the dependent parts only. We build upon decades of research and experience in the
functional programming community, relying on concepts such as monads, lenses, datatype generics, and closure
serialisation. We conclude that the use of functional programming is one of the main drivers of the success
of our project, and we see no significant downsides from it.