Friday, June 25, 2010 10:40 AM
by
RickM
F# Discoveries This Week 06/25/2010
As always, a huge number of software releases and high quality articles this week. My favorite thing about the F# community is that someone is always writing about something that tickles my brain. While right out of a computer science textbook, I enjoyed Erik Schulz’s sorting animations quite a lot. His animations are excellent.
News
A set of extensions to Visual Studio Professional (and above) which improves developer productivity. Includes a New ‘Add Reference’ dialog: Pops up fast and is more pleasant (less frustrating) to use.
HuwmanCode is a collection of libraries intended to enhance the base class libraries for developers writing F#. Using HuwmanCode you can write a Windows Service in F# entirely.
Installing F# Project Extender provides tools to better organize files in F# projects by allowing project subdirectories and separating file management in Solution Explorer from controlling compilation order.
VCC is a mechanical verifier for concurrent C programs. VCC takes a C program, annotated with function specifications, data invariants, loop invariants, and ghost code, and tries to prove these annotations correct. If it succeeds, VCC promises that your program actually meets its specifications.
Fing is F# API Search. It's inspired by Hoogle, although it is not a port.
Audio/Video
During this talk, Tomas will cover two techniques. We'll start by looking at F# events and declarative approach for specifying event processing. Next, we'll look at embedding F# event handling into asynchronous workflows and programming using "state machines". We'll also briefly mention how this relates to more general functional programming "design patterns".
A complete listing of all TechEd talks pertaining to F#. Thanks Talbott!
Articles
The end result of Microsoft’s new approach is that now Joes everywhere are getting exposed to functional programming (masses of people who would otherwise be virtually shielded from the rest of the programming world).
Inspired be Wikipedia's algorithm pages I decided to recreate their animations using JavaSrcipt and HTML5 canvas elements. IE 8 does not support canvas however new versions of all other modern browsers do. Mozilla Firefox, Google Chrome, Safari, and Opera.
The nice thing is that the application was cross-platform. I tried it on Windows, Linux and Mac, it worked everywhere, without changing a single line. It seems like F# is ready to make great cross-platform 3D applications!
I've been planning for a while to create an F# WPF MVVM Template to add to the other templates that have been announced on this blog. A resent post by Mark Pearl provided a great simple example which helped kick me into gear and bring this plan to fruition.
The starter project implements a simple calculator language that you can grow into a more sophisticated Domain Specific Language or text processing application.
In this post, we describe how to implement functions that help fetch information that can be used to study how well (or bad) the keywords are used on a given website in comparison with other (successful) competitors.
I ask again: is there a good native way to do this in F#? If not, it might well worth standardizing this. (And potentially other FORTH-like operators like “over” and “rot,” perhaps with an extensible syntax.)
To give some hints of what you can do with the WebSharper formlet library, the objective of the following exercise is to create a simple spread-sheet like widget based on formlets.
In general, seamlessly being able to create data abstractions and transfer data back and forth between the server and client is a very strong incentive for using the WebSharper extension.
In following post I'd like to highlight F# (and WebSharper) support for asynchronous and reactive programming.
The more I play the more I am really loving F# and how succinct the language is. Today I thought I would put up a brief post on the Seq.unfold function.
The next example is a little snippet that returns a dictionary distances between cities for a small distributed traveling salesman problem I did last year to test F# on a software engineering class.
So the idea for Love the Lambda was born: I would demonstrate both the usefulness and sheer novelty of first class functions and do so simultaneously in C# and F#. More than that, I would use the opportunity as a kind of F# omnibus.
I have to say, I really like F# so far. For those of you not in the know, F# is Microsoft’s new first-class language that has been in development since 2002 but debuted in Visual Studio 2010. It is basically a dialect of O’Caml that runs on .NET and has full Visual Studio support.