Monday, August 31, 2009 1:44 PM
F# Discoveries This Week 08/31/2009
This week we have a fresh video interview with Chris Smith. This is in addition to some excellent writing on prototyping DSLs, asynchronous workflows, WPF, functional composition and the open/closed principle.
I would also like to note that for the next few weeks I will be off vacationing. I apologize in advance for any missed or delayed updates. If you live in Japan and would like to discuss F# or functional programming in general, I would love to meet up with you for tea or a beer.
Chris Smith is a software design engineer on the Microsoft Visual F# team. In this interview, Chris describes the uses of F# and how it differs from object-oriented languages, such as C# and Visual Basic.
To build a domain specific language, you need a quick and effective prototyping process that can parse your language syntax and perform semantic checking.
The following examples show how it could be solved with F# both synchronously and asynchronously. While this is definitely not production ready, it provides a few samples of how asynchronous workflows can be used in the wild.
I have noticed some interest in my earlier post on how to add a WPF data template to a resource dictionary in code and so this post is a demonstration of the technique. The code is presented in F# but I have deliberately kept the code simple and fairly non-functional so that those of a C# or VB.NET background can follow the process easily.
Following on from my last post, and in preparation for a series on producing a full WPF application in F#, in this post I discuss the differences between the |> and >> operators and some additional functions I find helpful for composing functions.
In object-oriented programming, the open/closed principle states "software entities (classes, modules, functions, etc.) should be open for extension, but closed for modification”
If we follow this principle we get lot’s of small and testable classes. I want to demonstrate this with a simple spam checker for mails.