F# Language, Functional Programming, etc.
In one of the papers about F#, the F# designers gave the following description: "F# is a multi-paradigm .NET language explicitly designed to be an ML suited to the .NET environment. It is rooted in the Core ML design and in particular has a core language largely compatible with OCaml". In other words this means that the syntax of the F# language is similar to ML or OCaml (don’t worry if you don’t know these languages, we’ll look at some examples shortly), but the F# language targets .NET Framework, which means that it can natively work with other .NET components and also that it contains several language extensions to allow smooth integration with the .NET object system.
Articles about F#
- The Duality of Object and Event references (7/19/2010)
This article describes an interesting example of mathematical duality in programming languages - the duality between references between objects and references between events. The idea is useful for understading what events are garbage and can be garbage collected.
- Dynamic in F#: Reading data from SQL database (7/9/2010)
In this article we look at working with SQL databases in F# using ADO.NET. We'll see how to use dynamic invoke operator to make the usual ADO.NET code remarkably elegant and simple...
- PLDI 2010 Trip Report (7/5/2010)
In June, I attended PLDI 2010, which is one of the big "programming language" conferences. I presented a paper based on some work that I did during my internship at MSR at one of the workshops and I also attended many interesting talks...
- Recording and samples from my Reactive F# talk (6/27/2010)
Almost a week ago, I posted an invitation to my F# talk at the F#unctional Londoners user group. The talk has been recorded, so you can view it online now and you can also get all the Silverlight demos...
- ASP.NET and F# (I.) - Creating MVC web applications in F# (5/9/2010)
This article shows how to use F# for developing ASP.NET web applications using the MVC framework. It also shows how to access data using LINQ in F# and how to simplify web programming using F# meta-programming, modules and records.
- Accelerator and F# (IV.): Composing computations with quotations (1/12/2010)
In this article series we're talking about the Accelerator project, which can be used from F# to write code that runs in parallel on GPU or multi-core CPU. In this article, we'll look at building complex data-parallel programs with F# quotations, we'll implement blur filter and we'll also discuss architecture and performance.
- Accelerator and F# (III.): Data-parallel programs using F# quotations (1/4/2010)
We already discussed how to write programs that run on GPU using MSR Accelerator. In this article, we'll write an image rotation using data-parallel F# functions and then use a library that translates it to Accelerator automatically.
- Accelerator and F# (II.): The Game of Life on GPU (12/28/2009)
This article shows how to use Accelerator from F#, which I already discussed, to implement a massively parallel version of the famous Conway's Game of Life.
- Accelerator and F# (I.): Introduction and calculating PI (12/21/2009)
This article shows how to write F# programs that run in parallel as shader programs on GPU or on multi-core CPU using Microsoft Research Accelerator project.
- F# Webcast (IV.) - Developing standard .NET libraries (6/15/2009)
This webcast demonstrates how to wrap an existing F# code into an object oriented library that can be nicely used from C# and how to use it when developing ASP.NET web application. The demo uses script for processing RSS feeds from the previous webcast.
- F# Webcast (III.) - Using Asynchronous Workflows (6/5/2009)
In the previous part you've seen how to write a simple function for downloading RSS feeds and processing them. In this part, we look how to improve the function to download data asynchronously and process them potentially in parallel.
- F# Webcast (II.) - Using .NET libraries (6/1/2009)
This is the second part of the webcast series that introduces the F# language. It shows how to use .NET libraries from F# to download RSS feed and how to work with the obtained data using tuples, sequence expressions and other F# features.
- F# Webcast (I.) - Introducing functional concepts (5/25/2009)
Now that Visual Studio 2010 beta 1 is out, it may be a good time finally try the new F# language. To make the exploration easier, I created a web cast series that demonstrates interesting aspects of F#. In this part, we'll look at basic functional concepts and working with data.
- Internship project: Reactive pattern matching (5/17/2009)
I already mentioned that I was doing my second internship with Don Syme at MSR Cambridge. This time, I was in Cambridge for 6 months from October until April, so it has been more than a month since I left, but as you can guess I didn't have time to write anything about the internship until now...
- Imperative computation in F# (II.) - Writing break and continue (4/25/2009)
In the previous article of this series, we've implemented a computation expression that allows us to write imperative 'return' in F#. In this article, we'll add support for 'break' and 'continue'.
- Imperative computation in F# (I.) - Returning results from a function (3/19/2009)
Even though F# supports some imperative constructs such as for and while loops, it doesn't support some of the advanced constructs like imperative return and break. In this series, we'll look how we can implement these constructs ourselves using F# computation expressions.
- Source code for Real World Functional Programming available! (2/12/2009)
Just a short update regarding the book I'm working on. First of all, the source code for the first 11 chapters is now available! Secondly, I did some changes to the TOC and you can now find the commented TOC on the book web site.
- Functional Programming in .NET using C# and F# (Manning Greenpaper) (12/11/2008)
This article is partially an excerpt from my book. It introduces the benefits of functional pogramming, and explains the essential aspects of the functional style using F# and C# 3.0. Finally, it also shows how functional style influences the application architecture.
- Reactive Programming (IV.) - Developing a game in Reactive LINQ (11/24/2008)
In this article, we'll implement a simple iteractve game using the Reactive LINQ project. The article shows that this way of handling events gives us amog other things a great degree of composability.
- Reactive Programming (III.) - Useful Reactive LINQ Operators (11/21/2008)
In the previous article, I introduced Reactive LINQ. Today, we're going to look at other operators that canbe used for working with events. We'll see aggregation is useful and how to dynamically change (switch) behavior.
- Reactive programming (II.) - Introducing Reactive LINQ (11/19/2008)
In the second part of the series about reactive programming, I introduction the Reactive LINQ project, which allows writing event processing code in C# using LINQ queries.
- Reactive programming (I.) - First class events in F# (11/16/2008)
The LINQ project and changes in C# 3.0 are interesting because they allow implementing many ideas from functional languages in C#. In this article I'll explain "first-class events" in F# and later I'll implemet similar concept using LINQ.
- Functional Programming in .NET book - An update (10/20/2008)
Recently, I announced on my blog that I’m working on a book for Manning called Real-world Functional Programming in .NET. It is more than a month since I wrote about it, so here is a brief update...
- Dynamic Lookup in F# (6/4/2008)
Dynamic languages allow you to represent a member using a symbol or a string and to use this symbol to work with the member. In this article I'll show how to do same thing in statically-typed way in F#.
- Thesis: Client-side Scripting using Meta-programming (3/17/2008)
Contains a link to my Bachelor Thesis about F# WebTools, which I partially worked on during my visit in Microsoft Research and which I successfully defended last year.
- F# Support for ASP.NET and Notes on Samples (3/8/2008)
In this article I look at the F# suppot for ASP.NET and at some interesting aspects of the samples that are available in the F# distribution.
- Infinite Cheese Fractal using WPF 3D and F# (11/24/2007)
This article describes a 3D version of famous Sierpinski carpet fractal implemented in the F# language using WPF 3D libraries from .NET 3.0.
- F# Overview (IV.) - Language Oriented Programming (11/3/2007)
In the fourth article of the F# overview series, I will shortly describe how I understad the language oriented paradigm and how the F# language can be used for developing libraries using this paradigm.
- F# Overview (III.) - Imperative and Object-Oriented Programming (11/3/2007)
In the third part of the F# overview, we will look at the F# features that are essential for a smooth interoperability with other .NET languages and form a second part of the F# core language - that is object oriented and imperative programming.
- F# Overview (II.) - Functional Programming (11/3/2007)
In the second part of the F# overview we will look at functional programming, which is probably the most important paradigm used with the F# language, because F# is built on the same grounds as many functional languages.
- F# Overview (I.) - Introduction (11/3/2007)
First article of the F# Overview series introduces the F# language and gives a quick overview of the programming paradigms that will be discussed in the upcoming articles.
- F# Quotations Samples on CodePlex (9/20/2007)
This article describes a few samples available in the F# Samples project at CodePlex that demonstrate how to work with the F# quotations using active patterns.
- Building LINQ Queries at Runtime in F# (8/18/2007)
In this article I will introduce FLinq, the F# support for language integrated query and show how we can construct a database queries dynamically in a type-safe way in F#.
- F# Web Tools: "Ajax" applications made simple (7/13/2007)
This article introduces the F# Web Toolkit, which is an "Ajax" web framework that solves three major problems that many people have to face when developing modern web applications.
- Keep your multi-core CPU busy with F# (3/24/2007)
Code which makes it possible to write applications that take advantage of multi-core CPUs by parallelizing F# filter and map functions.
- Quotations Visualizer for F# 1.1.13.8 (2/14/2007)
Little update to my F# quotations visualizer tool to make it compatible with the latest version of F# (1.1.13.8).
- F# presentation at Czech .NET Group meeting (11/14/2006)
Contains links to slides and demos from my presentation focused on F# and functional programming, which I did at the Czech .NET User Group meeting.
- F# metaprogramming and classes (10/14/2006)
This article presents prototype that makes it possible to use F# metaprogramming to analyse and translate classes written in special way.
- F# quotations visualizer - reloaded! (10/1/2006)
New and improved version of quotation visualizer. Supports more language constructs and makes it possible to open quotations from compiled F# assembly.
- F# CodeDOM Provider on the CodePlex (8/23/2006)
CodeDOM generator for the F# language posted to the new Microsoft community site called CodePlex!
- ASP.NET web applications in F# (8/13/2006)
This article shows how ASP.NET can be extended to support F# language using CodeDOM provider.
- F# quotations visualizer (6/21/2006)
Application that displays graphical representation of given F# quotation (using Windows Forms TreeView control)
- Slides and demos from F# presentation (6/9/2006)
I did a F# presentation at .NET seminar at our university, so here are the slides and demos...
- F# - Simple quotations transformation (5/28/2006)
This article describes very simple code that I wrote while learning how to work with the F# quotations library.
Other F# Sources
- [1] F# web site [^] - Official F# homepage
- [2] Expert F# [^] - Book by by Don Syme, Adam Granicz and Antonio Cisternino
- [3] Foundations of F# [^] - Book by Robert Pickering
- [4] hubFS: THE place for F# [^] - The F# community web site with blogs, forums, etc..
- [5] F# Wiki Homepage [^] - F# Wiki started by Robert Pickering
- [6] Don Syme’s WebLog on F# and Other Research Projects [^] - Blog written by the F# language designer Don Syme
- [7] Robert Pickering’s Strange Blog [^] - Blog of the "Foundations of F#" book author
- [8] Granville Barnett [^] - Explorations in programming
- [9] F# News [^] and F#.NET Tutorials [^] by Jon Harrop
- [10] F# Samples [^] - Contains code that demonstrate various F# language features
- [11] F# WebTools [^] - Project that allows writing client/server Ajax web applications entirely in F#
Published: October 11, 2007 02:39

