One of the most-used and unique features of F# is asynchronous workflow, and we have discussed this with the introduction to concurrency optimization in Chapter 4, Introduction to Concurrency in F#. The asynchronous workflow itself is actually an implementation of a computation expression, a feature that enables us to have a computation. This computation is, in fact, a sequence of workflows of functions that is composed sequentially and has bindings to bind or combine them.
The computation expression has many kinds of helper methods to implement, but using these helpers can be overkill, and it may have some overheads as well if it is not constructed properly. It is not as subtle and hard as the previous discussion on language constructs in Chapter 7, Language Features and Constructs Optimization.
In this chapter, we will focus our optimization on the implementation of computation workflows with the following topics:
Quick introduction to F# computation...