Numerical Methods in Haskell with Applications to Data Analysis, Finance and Physics