Monday, 16 July 2007

Introduction to .NET Threading

The .NET platform provides parallel execution of code through multithreading. A thread is an independent execution path, able to run simultaneously with other threads. This article describes the fundamentals of .NET threading and how this functionality can be leveraged elegantly by F# programs...

To read the rest of this article, subscribe to The F#.NET Journal today!

Monday, 9 July 2007

F# for Visualization 0.2.0

A new beta version of F# for Visualization was released yesterday.

This release adds a new threading model, allowing spawned visualizations to have their properties edited interactively either through the GUI or from an F# interactive session.

The next release will add support for the F# version of our high-performance 2D vector graphics library.

Tuesday, 3 July 2007

GUI Application: Sudoku Solver

This article walks through the design and implementation of a complete GUI application for solving Sudoku puzzles. This is perhaps the smallest interesting GUI application that demonstrates many different advantages of the F# programming language, including functional programming and .NET interoperability...

To read the rest of this article, subscribe to The F#.NET Journal today!

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.