Tuesday, 3 July 2007

New Language Features

The F# programming language is about to have more exciting new features added:
  • Slicing
  • Asynchronous programming
Slicing is a useful syntax extension that allows subarrays to be referred to by offset and stride. This feature is taken from languages like Matlab and Python and can be used to express some array-based computations more succinctly. However, we should note that slicing is a vitally important optimization in Matlab and Python because looping contructs in these languages are very slow. This will not be the case in F#, where looping is already extremely fast.

Integrated support for asynchronous programming is a radical departure from the norm. This is a new syntax that transparently introduces a monadic style of programming specifically designed to make asynchronous programs both simpler and more robust. In particular, F# programs written in this style will benefit from the automatic handling of cancellations. This is a revolutionary new language feature and the preliminary example programs already demonstrate a huge improvement over conventional techniques.


Steve Owens said...

In what version will these new features be present?

Jon Harrop said...

I'm not sure, but I believe Don Syme will be announcing them in a blog entry real soon.