I’m a frequent speaker at F# and .NET events, author of numerous C# and F# articles and a StackOverflow addict. I have been Microsoft C# MVP since 2004 and I used F# since early Microsoft Research versions.
I’m convinced that F# and functional programming work well in practice and I do my best to help them:
I'm also partly involved in Phalanger, which is a PHP compiler for .NET. If you're interested in integrating PHP and ASP.NET contact DEVSENSE.
I'm interested in programming models and questions like: What is the best "language" for solving a given problem? How to encode these models in existing languages? How to help programmers avoids certain types of errors when using the model?
You can find my publications and other information about my research projects on my academic page.
One of the most amazing aspects of mathematics is that it applies to such a wide range of areas. The same mathematical rules can be applied to completely different objects (say, forces in physics or markets in economics) and they work exactly the same way.
In this article, we'll look at one such fascinating use of mathematics - we'll use elementary school algebra to reason about functional data types.
In functional programming, the best way to start solving a problem is to think about the data types that are needed to represent the data that you will be working with. This gives you a simple starting point and a great tool to communicate and develop your ideas. I call this approach Type-First Development and I wrote about it earlier, so I won't repeat that here.
The two most elementary types in functional languages are tuples (also called pairs or product types) and discriminated unions (also called algebraic data types, case classes or sum types). It turns out that these two types are closely related to multiplication and addition in algebra...
Read the complete article
Tuesday, May 14, 2013
This article is inspired by an MVP summit talk about common pitfalls in the C# asynchronous programming model. I look at a number of easy to make mistakes when writing asynchronous code in C# and demonstrate that most of them would not easily happen when using F#.
F# Data is a new library that gives you all you need to access data in F# 3.0. It implements type providers for WorldBank, Freebase and structured document formats (CSV, JSON and XML) as well as other helpers. This article introduces the library and gives a quick overview of its features.
After a few years, I will be attending the MVP summit again this year. The good news for those interested in F# is that I have two talks scheduled along the way in New York and Boston. Aside from that, we also have dates for a new F# course in London and New Year!
This article introduces a new F# package that makes it possible to write literate F# programs that combine code with documentation. Given an F# script with a special comments or Markdown document with F# code, you get a nicely formatted HTML that can be used to build documentation or write blogs.
One of the less frequently advertised new features in F# 3.0 is the query syntax. It allows adding custom operations to a computation expression block. This article shows how to define a custom computation for processing trees using zippers. We'll add navigation over a tree as custom operations to get a simple syntax.
There is an increasing number of commercial F# uses. If you want to learn about the domains where F# is used (including finance, game development, machine learning and other) as well as about common programming techniques in F#, then the upcoming F# Deep Dives book is the book for you!