This topic illustrates how to exploit Functional Programming in a WPF application. The first example comes from a post by Māris Krivtežs (ref Remarks section at the bottom). The reason for revisiting this project is twofold:
1\ The design supports separation of concerns, while the model is kept pure and changes are propagated in a functional way.
2\ The resemblance will make for an easy transition to the Gjallarhorn implementation.
Library demo projects @GitHub
Māris Krivtežs wrote two great posts on this topic:
I feel that none of these XAML application styles benefit much from functional programming. I imagine that the ideal application would consist of the view which produces events and events hold current view state. All application logic should be handled by filtering and manipulating events and view model, and in the output it should produce a new view model which is bound back to the view.