Real-World Functional Programming (With Examples in F# and C#)