Note: F# is a research project from Microsoft Research, see the project website at http://research.microsoft.com/projects/ilx/fsharp.aspx and a clarification at http://research.microsoft.com/projects/ilx/fsharp-ack.aspx.  It is not a Microsoft product.

This posting is provided "AS IS" with no warranties, and confers no rights. Use of included script samples are subject to the terms specified at http://www.microsoft.com/info/cpyright.htm

This blog is primarily for announcements about F# and other research projects in which I'm participating, and will contain summaries of ongoing design discussions and links to related material and other sites on the web.  Let's start with the fact that a preview release of F# version 1.0 is now available!  The release announcement is below. :-)

As hinted in earlier messages on this email list a new release of F# is now available from http://research.microsoft.com/downloads. I delayed making the announcement while some problems with the download were sorted out.  Please contact me directly if there are problems.

Highlights in this release are

  • Object expressions and other enhancements to the language. See http://research.microsoft.com/projects/ilx/fsharp-manual-advanced.aspx#ObjectExpressions. This makes the language a CLS extender language with one exception - it is not yet possible to create objects that implement multiple unrelated interfaces - there are workarounds for this by using a C# helper class.
  • "Mutually dependent reactive values" that can be of help when writing GUI applications and other reactive components. See http://research.microsoft.com/projects/ilx/fsharp-manual-advanced.aspx#ReactiveRecursion
  • A preliminary version of a Microsoft Visual Studio package (currently requires VS 2005 Beta 1 and the matching VSIP SDK). This includes interactive syntax highlighting, parsing and typechecking, and a preliminary project system. Support for intellisense will be added at some point in the v1.0 release cycle.
  • Improvements such as null patterns, null-checking expressions, dynamic type test patterns, static "upcast" coercions
  • "ExportAs" annotations that let object expressions appear as classes. This lets you author ASP.NET pages directly in F#, as shown by Robert Pickering (http://www.strangelights.com)
  • Lexer and Parser generators (fslex and fsyacc)
  • An extended ML-compatibility library, and a core library that contains the functionality you need to develop your own replacement basic library
  • Many small improvements to the interoperability between F# and other .NET languages
  • Support for producing both generic and non-generic code (i.e. F# can be used with both "Whidbey" and earlier release of .NET)
  • A host of small additions and modifications to the language as documented in the CHANGES list.
  • An altered license that contains revisions related to static linking the F# libraries.

This posting is provided "AS IS" with no warranties, and confers no rights. Use of included script samples are subject to the terms specified at http://www.microsoft.com/info/cpyright.htm