Exploring quotations and metaprogramming
The last feature I want to cover among the advanced patterns of F# use is Code Quotations (https://docs.microsoft.com/en-us/dotnet/articles/fsharp/language-reference/code-quotations). This feature is quite mind-bending, allowing you to work with the program code as if it is data, and evaluate these "program as data" pieces when needed and in the needed manner.
The feature review
Looking at this feature from the more operational angle, a program piece may be represented as an expression tree representing the code but without running the code generation off this representation. This allows for arbitrary execution behavior when the expression tree is to be evaluated. It can be evaluated as F# code or as source ...
Get F# 4.0 Design Patterns now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.