New Codeplex Project: F# Programming Samples

Granville Barnett has started a new CodePlex project called "F# Samples", at http://www.codeplex.com/fsharpsamples. I think everyone is welcome to join the project and contribute to the samples. Here's how Granville described it: Hi Don,   FYI, I’ve set up a samples project for F# stuff on CodePlex to try and educate more programmers about the benefit … Continue reading New Codeplex Project: F# Programming Samples

Introducing “use” bindings in F# 1.9.2

F# 1.9 is seeing the rollout of a number of additions to the F# language, and this is the first of a series of blog entries on these.  For starters, the 1.9.2 release has seen the addition of "use" bindings. Here is a simple example:     let writePlayList() =         use outp = File.CreateText(@"playlist.txt")     … Continue reading Introducing “use” bindings in F# 1.9.2

Full Release Notes for F# 1.9.2.7

Here are the full release notes for F# 1.9.2.7. Slicing syntax The following syntax forms     expr := ...           | e1.[range1]           | e1.[range1,range2]       range := e2..e3            | ..e3            | e2..            | * represent slicing from a 1D or 2D data structures that supports associative lookup on ordered keys. In … Continue reading Full Release Notes for F# 1.9.2.7

Using F# active patterns with LINQ expression trees

Luis Diego Fallas has written a nice blog entry on using F# active patterns to ease the process of working with LINQ expression trees. This kind of "meta-programming" application is absolutely one of the key reasons why Greg Neverov, James Margetson and myself added the feature to F#. I'm very glad to see Luis putting the pieces together and explaining what's … Continue reading Using F# active patterns with LINQ expression trees

More on the overloaded conversion operators in 1.9.1.9

F# 1.9.1.9 includes an addition that can substantially simplify F# numeric code. This provides a solution for a problem that has been present in F# programming from the start, but is not present in many other languages. In particular, the functions int, float, float32 etc. are now defined as overloaded conversion operators. For example, you can replace … Continue reading More on the overloaded conversion operators in 1.9.1.9

F# 1.9.1.9 available (currently MSI only): Includes overloaded numeric conversion functions and checked arithmetic

Hi all, I'm glad to announce the availability of F# 1.9.1.9. It's available for download from this link: http://research.microsoft.com/research/downloads/details/c8d270ce-dc93-4b82-8125-2c57036520b3/details.aspx This is in general a bug fix release over 1.9.1.8, with some exceptions We've added two great new features: Overloaded numeric conversion functions. The functions int, float, float32 etc. now overloaded conversion operators. For example, you can … Continue reading F# 1.9.1.9 available (currently MSI only): Includes overloaded numeric conversion functions and checked arithmetic

Some F# Links: SPiM, F# News, FFT, Multi-core

Andrew Phillips' Stochastic Pi Simulator (SPiM) is implemented in F# (and also OCaml) and has been gaining some attention of late. There is a nice article called Making Computer Systems Reveal Biological Secrets on the MSR website and F# gets a mention at the end. On that topic, Jon Harrop has some new articles on his F# News … Continue reading Some F# Links: SPiM, F# News, FFT, Multi-core

HDFS – Hardware Design Using F#, version 0.2

  On hubFS AndyMan has recently announced "Hardware Design F#", HDFS, Version 0.2, based on a port of HDCaml, by Tom Hawkins, though rapidly acquiring a life of its own.  I blogged about version 0.1 a while back. Here are his release highlights:   The project has moved home. Now at  http://code.google.com/p/hdfs/ and  http://groups.google.com/group/hdfsharp Revised circuit design API.  Where … Continue reading HDFS – Hardware Design Using F#, version 0.2

Detailed Release notes for 1.9.1.8

Detailed Release Notes for release 1.9.18 of the F# Compiler and Tools.   http://research.microsoft.com/research/downloads/details/b46c7032-149c-4da3-a027-7768210a158d/details.aspx [ Note: we've had one report of an installation issue on Windows XP, and one on Windows Vista. If you have a problem try installing the VC runtime libraries http://www.microsoft.com/downloads/details.aspx?FamilyID=32BC1BEE-A3F9-4C13-9C99-220B62A191EE&displaylang=enPlease let us know if you have problems, by emailing us at "fsbugs at microsoft … Continue reading Detailed Release notes for 1.9.1.8

F# 1.9.1.8 Released!

[ Note: An update to this release has been announced: see version 1.9.1.9 at http://blogs.msdn.com/dsyme/archive/2007/05/06/f-1-9-1-9-available-currently-msi-only-includes-overloaded-numeric-conversion-functions-and-checked-arithmetic.aspx %5D I am very pleased to announce that F# 1.9.1 is now available for download. This is a major release for us, a first step toward F# 2.0, and incorporating two exiciting new features: Active Patterns and Implicit Class Construction. The … Continue reading F# 1.9.1.8 Released!

New drafts of chapters from “Expert F#”

I'm very glad to announce the availability of drafts of Chapters 2-7 of Expert F#, of a book on F# which I'm currently in the process of co-authoring (thanks to James Huddleston at Apress for permission to post these).  This is one of two F# books planned for publication by Apress in 2007, the other being Foundations … Continue reading New drafts of chapters from “Expert F#”

Writing XBox 360 games with F# and XNA Game Studio Express (courtesy of Jack Palevich)

Whoa! F# for games on the XBox 360!?  Microsoft XNA Game Studio Express got launched today, and is available free to anyone with a Windows XP-based machine at http://www.msdn.com/XNA. This is based on Visual C# 2005 Express Edition and the Microsoft.NET Compact Framework. Jack Palevich on the XBox team has written three tutorials on How to Write … Continue reading Writing XBox 360 games with F# and XNA Game Studio Express (courtesy of Jack Palevich)

F# helps show we’re not Neanderthals

Well, sort of :-) One of our most recent scientific users of F# is Darren Platt, head of computational genomics at the DOE Joint Genome Institute (they sequence something like 20% of the world’s DNA - here are the stats). Darren is a co-author of the recent stunning paper on Neanderthal DNA (see screen shots below), where they sequenced DNA extracted … Continue reading F# helps show we’re not Neanderthals

F# 1.1.13 detailed release notes

  I’m pleased to announce that F# 1.1.13 has been released. The original release announcement is here. You can download this release from http://research.microsoft.com/fsharp/release.aspx . A summary of the changes in this release is given below (in some cases these updating the changes in the README-fsharp.html from the distribution)   Enjoy!   Don and James … Continue reading F# 1.1.13 detailed release notes

F# 1.1.13 now available!

  I’m pleased to announce that F# 1.1.13 is now available! You can download this release from http://research.microsoft.com/fsharp/release.aspx .    This is an exciting release, containing many important enhancements to the language that make F# programming simpler, more powerful and easier to explain and understand.  We’re particularly pleased with comprehensions, which, although found in other languages, … Continue reading F# 1.1.13 now available!

Three machine learning experts, F# Interactive, IEnumerable, a Terabyte of data and XBox Live…

  Ralf, Phil and Thore in the MSR Cambridge Applied Games Group have been continuing their work using F# in conjunction with the XBox Live team.  Ralf amazes me with the ease with which he switches between sophisticated probabilistic modelling to writing stored procedures in C#, then back to F# Interactive to crank out another great … Continue reading Three machine learning experts, F# Interactive, IEnumerable, a Terabyte of data and XBox Live…

F# for Scientists announced by Jon Harrop

I'm very excited to see that Jon Harrop has announced his intention to produce F# for Scientists. Jon is a PhD in Computational Chemistry from the University of Cambridge, and also the author of the absolutely must-have book Ocaml for Scientists.  One review of this fantastic book said: What do you take with you when police are banging … Continue reading F# for Scientists announced by Jon Harrop

Apress announces “Foundations of F#”, by Robert Pickering, for March 2007

I'm very excited to see that James Huddleston from Apress has announced the upcoming publication of Foundations of F#, by Robert Pickering.  Here's the Apress announcement. The book will be out in March 2007. The description on Amazon (where you can pre-order) promises that this will be "an elegant, comprehensive introduction to all aspects of the language … Continue reading Apress announces “Foundations of F#”, by Robert Pickering, for March 2007

F# on Channel 9

Recently I had the pleasure of talking with Mike Hall and a DV Camera for an hour, the end result being two F# videos/interviews recently posted on Channel 9. There are two parts:                   Interview by Mike Hall                 The F# WebCrawler and DirectX demos   Thanks to Damien Watkins for arranging this :-)  

Draft Chapter 2 of “Expert F#”: Essential Language Features

  [ Note: this post is now out-of-date: drafts of Chapters 2-7 are now available ]    I'm very glad to announce the availability of an early draft of Chapter 2 of a book on F# which I'm currently in the process of co-authoring.  The projected title of the book is, unabashedly, "Expert F#". This is one of two F# books planned … Continue reading Draft Chapter 2 of “Expert F#”: Essential Language Features

Detailed release notes for 1.1.12.3

Detailed release notes for 1.1.12.3   Collected changes between v1.1.11.12 and 1.1.12.3 Lightweight syntax option. Are you sick of writing in? The #light option makes the use of certain keywords such as in optional by using indentation. See the informal language specification for details, as well as the ConcurrentLife sample and the Samples101 tutorial. Enable … Continue reading Detailed release notes for 1.1.12.3

Lightweight syntax option in F# 1.1.12.3

We're glad to announce that F# 1.1.12.3 supports the optional use of lightweight syntax through the use of whitespace to make indentation significant.  At the time of this release this is an experimental feature, though it is assumed that its use will become widespread. The F# indentation-aware syntax option is a conservative extension of the … Continue reading Lightweight syntax option in F# 1.1.12.3

F# 1.1.12 now released!

We're very pleased to announce that F# 1.1.12 is available for download. (note: since the time of writing this has been updated to F# 1.1.12.5) This release incorporates a significant number of minor improvements combined with two new features: a lightweight syntax option and a feature called Active Patterns.   Both are considered "beta" features: minor changes … Continue reading F# 1.1.12 now released!

An upcoming experimental feature: Active Patterns in F#

Greg Neverov (inventor of the C# dialect Metaphor and an intern at MSR Cambridge this summer) has been working on an experimental new language feature called "active patterns".  This topic has come up on The Hub, so I thought I would mention a bit about it here, though I will only be able to give a brief taste … Continue reading An upcoming experimental feature: Active Patterns in F#

Internships at MSR Cambridge (now All-Year-Around)

Are you interested in working for three months at Microsoft Research, Cambridge, on a project related to F#?  MSR Cambridge now takes interns year-round, not just in the summer months. We are keen to attract motivated and well-qualified folk to work with us on our research, and on improving or developing F# and its related tools … Continue reading Internships at MSR Cambridge (now All-Year-Around)

ASP.NET web applications in F#

Tomas writes on The Hub: ASP.NET web applications in F# CodeDOM and providers CodeDOM (Code Document Object Model) is set of objects (located in System.CodeDom namespace) that can be used for representing logical structure of .NET source code. For example you can use CodeTypeDeclaration class to represent class declaration or CodeAssignStatement to represent assignment in … Continue reading ASP.NET web applications in F#

On The Hub: F# and ASP.NET 2.0 (CodeDom provider)

The Microsoft MVP Tomas Petricek has been continuing his exploration of F# LINQ-style quotations to implement a first cut at an F# CodeDom provider, with a view to building entire web applications in F# alone.  He's posted a blog entry on The Hub (n.b. you currently have to register with The Hub for this entry): I was recently … Continue reading On The Hub: F# and ASP.NET 2.0 (CodeDom provider)

F# for Fun: Podcasting in F#

Dominic has trumped me again - while I'm busy writing media-savvy samples like "1+1 = 2" he goes and writes a podcasting client in F#.   Other gems on his wonderfully eclectic blog are the unlikely combination of the world's shortest escalator and a  Writing a pi-calculus compiler in F# (Parts I - VII). Enjoy! 

Detailed Release Notes for F# 1.1.11.7

  The full change list for F# 1.1.11.6 is below. Here's the list of fixes we've made between F# 1.1.11.6 and F# 1.1.11.7:    --   Permit the use of lambdas taking multiple tupled arguments within quotations.    --   Fix integer formats 0b101001 and 0o101030 in fsi.exe (thanks to Robert Pickering for this one)    --   Fix inlining of composition operator    … Continue reading Detailed Release Notes for F# 1.1.11.7

.NET Developer Journal: Grid Computing with F#

Chad Albrecht has written an article for the recent edition of .NET Developers Journal called F# on a Virtual Super Computer.  It uses the excellent Alchemi grid computing framework from my the University of Melbourne (a wonderful institution from my home country that also brought us Mercury, whose design and implementation of existential types strongly influenced my decision … Continue reading .NET Developer Journal: Grid Computing with F#

Introducing http://cs.hubfs.net: a great new F# community initiative takes shape

I’m very glad to announce a new F# community initiative called “The Hub”, hosted at http://cs.hubfs.net, and known as “hubFS”.   Broadly speaking, this site aims to be “THE place for F# on the web”.  I think this is great – we need a broad reach on the web, and all the signs are that this site … Continue reading Introducing http://cs.hubfs.net: a great new F# community initiative takes shape

F# for games and machine learning: .NET + performance + scripting

Ralf Herbrich is a co-leader of MSR Cambridge's Applied Games Group, which specializes in using machine learning techniques such as TrueSkill to improve the player experience of XBox Live and other applications.  He's now also an F# user and advocate, having recently succesfully used F# to rapidly perform new, experimental analysis of masses of new … Continue reading F# for games and machine learning: .NET + performance + scripting

F# First Class Events: Simplicity and Compositionality in Imperative Reactive Programming

The text of this post is also available as an article, which I'll modify with latest material on this topic as time goes on. As of version 1.1.10, F# now supports first-class, composable events. Here 'events' is used in the same sense as in the C# language, but you'll notice some important differences in how events … Continue reading F# First Class Events: Simplicity and Compositionality in Imperative Reactive Programming

Simplicity and Compositionality in Asynchronous Programming through First Class Events (Article Version)

Updates to this article from the original blog version based on reader comments are marked in purple! As of version 1.1.10, F# now supports first-class, composable events. Here 'events' is used in the same sense as in the C# langauge, but you'll notice some important differences in how events appear in the language design and in practical … Continue reading Simplicity and Compositionality in Asynchronous Programming through First Class Events (Article Version)

F# 1.1.10.2 installation problem on Visual Studio.NET 2003

F# 1.1.10.2 has an unexpected problem with installation of the Visual Studio support for Visual Studio 2003.  Many thanks to optionsScalper for reporting this problem early.    If you use VS 2003 please wait until we release a new version early next week or use the workaround mentioned below.  You can also ignore the error message … Continue reading F# 1.1.10.2 installation problem on Visual Studio.NET 2003

FJavaC (a functional Java compiler) now on F# using Mono

Stephen Tse of UPenn has just completed his cross-compilation of FJavaC with F# and OCaml, using F# 1.1 on Mono/Linux (he's made some notes about using F# with Mono/Linux on the F# Wiki - some further notes are below).  To quote their website, FJavaC is  "a Java 5 compiler ... our long term goal is to produce a complete and … Continue reading FJavaC (a functional Java compiler) now on F# using Mono

Detailed release notes for F# 1.1.8.1

A summary of the changes and additions for F# between 1.1.5.2 and 1.1.8.1 is as follows: ·         Expression Quotation now called Microsoft.FSharp.Quotations contains a range of functionality related to "lifted expressions", i.e. expression quotation, which is a form of meta-programming. This is still under development, and some important functionality is missing or incomplete, but is … Continue reading Detailed release notes for F# 1.1.8.1

F# meets LINQ, and great things happen (Part I)

  [ Note: a later, more up-to-date post decribes F# Power Pack LINQ support ] In case you haven't heard, LINQ (Language Integrated Queries) is Microsoft's project codename for adding a range of features to C# and Visual Basic to allow programmers to write "language-integrated query, set, and transform operations".  The idea is to use a combination … Continue reading F# meets LINQ, and great things happen (Part I)

New: F# Library Documentation and HTML Doc generation

I'm very pleased to announce that the F# library documentation has just made a quantum leap into the 21st century of XMLDocs and HTML pages.  A first cut of the pages starts at   http://research.microsoft.com/fsharp/manual/namespaces.html   Please let us know what you think.  Links into the above pages should be stable so you can bookmark them.  … Continue reading New: F# Library Documentation and HTML Doc generation

F# 1.1.5 detailed release notes

Here are the detailed release notes for F# 1.1.5.2.  (Note - new documentation for the F# library will soon be hosted on research.microsoft.com) Description Intellisense Interactive XMLDoc Help.   XMLDoc help for C# and VB libraries such as mscorlib.dll, System.dll and DirectX libraries is now shown interactively in Intellisense dropdown menus and balloon help, just as … Continue reading F# 1.1.5 detailed release notes

F# 1.1.5 now available

I'm glad to announce that F# 1.1.5.2 is now available for download from Microsoft Research.  This release contains a mix of new features and bug fixes, at least some of which will be useful to nearly all F# users.  The highlights are as follows: ·         Intellisense Interactive XMLDoc Help.    ·         VS 2005 RTM support.  ·         … Continue reading F# 1.1.5 now available

F# 1.1.3.2 now available (for VS2005 RTM and Beta2, also VS2003)

F# 1.1.3.2 has been availalbe for some time now - this wraps up a number of bug fixes, especially for F# Interactive, the toplevel interactive mode (fsi.exe).  This release is suitable for use with the final version of VS2005, which has recently been released.  We're also nearing a follow up F# 1.1.4 release, which will include XMLDoc … Continue reading F# 1.1.3.2 now available (for VS2005 RTM and Beta2, also VS2003)

Detailed announcement for F# 1.1.1.6

Here are the detailed release notes for F# 1.1.1.6: Attributes. Specification clarifications for attributes. Attributes now give warnings when used inappropriately. Attributes can now be referenced with or without the Attribute suffix, e.g. [<Obsolete("this function is obsolete")>] or [<ObsoleteAttribute("this function is obsolete")>]. Compilation Speed Optimizations. Improved compilation speeds, especially when using the --standalone flag. VS … Continue reading Detailed announcement for F# 1.1.1.6

Video: Testing F# code with NUnit (Screen cast)

Dominic Cooney has just produced a screen cast on Testing F# code with NUnit . There is something in this for everyone: you get to see some .NET details, a taster of F# code, the new F# Interactive toplevel environment, the F# Visual Studio integration, and the synergistic effects of the .NET platform (a testing … Continue reading Video: Testing F# code with NUnit (Screen cast)

F# 1.1 Candidate Release now available! “F# Interactive”, OO Abstractions and more

I'm pleased to announce that the first candidate release of F# 1.1 is now available from the Microsoft Research downloads page.  This is build 1.1.0.4.  We hope you enjoy it!   A big thanks to James, who has been working very hard on this, and also Stephen, Dominic and Paul who have helped with the design of the … Continue reading F# 1.1 Candidate Release now available! “F# Interactive”, OO Abstractions and more

Position available to work with the CLR team on Rotor

Ori Gershony in the Microsoft CLR team recently sent me a link to a job announcement for a position dedicated to working on Rotor, the shared source version of the Microsoft implementation of the ECMA Common Language Infrastructure.  I've a soft spot for Rotor, since a while back we released Gyro (warning: page now somewhat stale!) with Andrew … Continue reading Position available to work with the CLR team on Rotor

A Little on Generalization, Reuse and Parameterization in F#

In this post I want to briefly touch on one of the main ways in which F# makes routine programming tasks simple.  One of the most common forms of code reuse involves taking existing code and making it more general, that is, reusing a basic algorithm or coding pattern by configuring essentially the same code in … Continue reading A Little on Generalization, Reuse and Parameterization in F#

F# 1.0.8 released (includes updates for use with Visual Studio 2005 Beta2)

F# is a research project from Microsoft Research. It is not a Microsoft product. All opinions are my own. All content is provided "AS IS" with no warranties, and confers no rights. F# 1.0.8.6 is now available at http://research.microsoft.com/downloads.  This release is primarily an update to match Visual Studio 2005 Beta 2, though F# can also continue … Continue reading F# 1.0.8 released (includes updates for use with Visual Studio 2005 Beta2)

Detailed Release Notes & Known Issues for F# 1.0.4.2

Detailed Release Notes & Known Issues for F# 1.0.4.2 F# 1.0.4.2 is now available at http://research.microsoft.com/downloads. This is the post for the detailed release notes.  A more user-friendly announcement will be placed on the front page of Don's F# Blog shortly :-) This page will also list known issues with this release. Overview of Changes: … Continue reading Detailed Release Notes & Known Issues for F# 1.0.4.2

Contract position in compiler development, also some snippets of F# news

[ Note - Applications for the contract position have now closed - thanks! ] I meant to put this on my blog a while back, but it's not too late yet.  Basically, we have a six month contract position available at the wonderful place where I work, the Microsoft Research lab in Cambridge, UK to work … Continue reading Contract position in compiler development, also some snippets of F# news

How to join the F# mailing list

Blogging is great, but there is still a place in the world for email lists :-)  So this is just a reminder that you can join the F# email list at http://list.research.microsoft.com/scripts/lyris.pl?enter=fsharp.&nbsp; That's also the place to go to manage your subscription.  The list is a forum to ask questions, report bugs and raise design issues.  Of … Continue reading How to join the F# mailing list

Some more F# intellisense screenshots

Here's a little picture gallery of intellisense screenshots from the newly released F# 1.0.1. For example, CodeTips help you see the types that are inferred for F# and .NET identifiers. This one shows some Intellisense functionality: pressing Ctrl-J brings up a selection of name-completions for the current position. Here you can see that the environment scales well … Continue reading Some more F# intellisense screenshots

F# 1.0.1 Now Available: Intellisense, CodeSense, MethodTips, VS 2003, Larger Library and more

F# is a research project from Microsoft Research. It is not a Microsoft product. All opinions are my own. All content is provided "AS IS" with no warranties, and confers no rights. I'm pleased to announce that a major new release of F# is now available (now version 1.0.2.0 after some minor updates and fixes). This … Continue reading F# 1.0.1 Now Available: Intellisense, CodeSense, MethodTips, VS 2003, Larger Library and more

Some work in progress for F# 1.0.1 (the second 1.0 preview release)

I thought I would mention some details of the features I've been working on for the next preview release of F# 1.0.  Firstly, the main thing: intellisense.  This has been a joy to implement: the code for the Visual Studio plugin can access the internal lexer, parser, type checker and type-checking data structures of the … Continue reading Some work in progress for F# 1.0.1 (the second 1.0 preview release)