Sunday, 21 December 2008

F# for Scientists source code: chapter 3

The source code from chapter 3 Data Structures of our book F# for Scientists is now available from the book's web page.

This chapter covers algorithmic complexity, arrays, lists, sets, maps, hash tables, heterogeneous containers and balanced, unbalanced and abstract syntax (expression) trees.


Wednesday, 17 December 2008

Reflection and run-time types

The F#.NET Journal just published an article about XNA:

"The common language run-time (CLR) provides functionality known as reflection that allows programs to create instances of types dynamically, bind types to existing objects and lookup the type of a given object. The F# programming language maps conventional ML type system constructs (tuples, records and variants) onto .NET classes and augments the reflection capabilities of .NET with functions to interrogate F# types. This article describes the reflection capabilities of F# and provides several example applications demonstrating the use of reflection in F# programs..."

To read this article and more, subscribe to The F#.NET Journal today!

First fully-supported release of F# announced

Following the announcement in October 2007 that Microsoft were productizing their F# programming language and the subsequent September 2008 CTP release of F#, Microsoft have made a third major announcement: the first fully-supported version of F# will be released as part of Visual Studio 2010!

This is really incredible news because it ossifies Microsoft's position as the world's first major corporation to take a modern statically-typed functional programming language out of research and push it directly into mainstream software development. By 2010, the F# language will be a viable option for over one million professional software developers around the world.

The next minor release of F# will be even sooner, as part of the Visual Studio 2010 beta.


Thursday, 4 December 2008

Beginner's XNA tutorial

The F#.NET Journal just published an article about XNA:

"Microsoft's XNA framework is a .NET library, intended primarily for games programming, that superceded Managed Direct X (MDX). XNA provides a safer, higher-level design that still exposes low-level graphics capabilities in order to provide the best possible performance for graphics-intensive software from a managed language. This article describes everything required to get rendering using the XNA framework with F#, from the most primitive built in effects to custom shader programs..."

To read this article and more, subscribe to The F#.NET Journal today!

Wednesday, 26 November 2008

F# for Scientists book club

Some very enthusiastic readers have started a book club for our latest book F# for Scientists where they discuss parts of the book and even video conference as a group every week on Skype to individual chapters of the book.

We are also running a poll on our F# News Blog where readers can vote for the F# book they would most like us to write next. Following the success of F# for Scientists, we are highly likely to write another book on F# and publish it in 2009. Until then, don't forget to subscribe to The F#.NET Journal!


Monday, 17 November 2008

New F# for Visualization demo

As promised, the new interactive help GUI application demo has been uploaded to our site with both a standalone executable that requires only .NET 3.5 and the complete source code and Visual Studio 2008 project for the application.

The embedded graphs are handled entirely by our F# for Visualization product through the use of reusable and customizable Windows Presentation Foundation GUI controls.

Buy your copy of F# for Visualization today and get visualizing!


Windows Presentation Foundation: basic controls

The F#.NET Journal just published an article about Windows Presentation Foundation:

"Microsoft's new Windows Presentation Foundation (WPF) is the next generation of graphical user interface technology, facilitating rich interactive content that is seamlessly integrated with related technologies. This article is the first in a series examining how WPF can be used from the F# programming language. We begin with an overview of WPF and describe the kinds of GUI applications that will benefit the most from using F# before surveying the basic GUI elements provided by WPF..."

To read this article and more, subscribe to The F#.NET Journal today!

Friday, 14 November 2008

F# for Visualization 0.3.1.8

The latest release of F# for Visualization is now available to our beta tester customers. This release is a significant refactoring that presents ViewControl, PlotControl, View3DControl and Plot3DControl WPF-compatible controls that allow users to put graphs and charts in their own software. We are working on a new demo to showcase these features, an interactive help system for F# for Visualization itself that will be freely available with complete source code!

These controls underpin the View, Plot, View3D and Plot3D classes that spawn visualizations from a running F# interactive session or non-GUI standalone program.

The F# for Visualization library is likely to see at least one more major refactoring before 1.0: to provide reusable axes before we implement data plots and contour plots.


Tuesday, 11 November 2008

F# for Scientists source code: chapters 1 and 2

We are in the process of porting the code from our book F# for Scientists (four reviews on Amazon!) to the latest September CTP release of the F# programming language from Microsoft.

The source code from chapters 1 and 2 are now available on the book's webpage.

Saturday, 8 November 2008

Book review: F# for Scientists

Sparky Dasrath has kindly posted a review of our book F# for Scientists on its Amazon sales page, giving the book the maximum five star rating, the same as all previous reviews:

"I am brand new to functional programming and this is my 3rd book having gone through both Foundations of F# and Expert F# which details the language very well. However, I was blown away with this book. While it does have some technical elements/examples to it, I found that it helped me bridge the gaps in some topics I did not fully grasp from the other two books.

This was written prior to the F# Sept 2008 CTP and due to changes in the language, one or two examples (again,let me stress just a few) needed to be modified in order to be compatible with the changes.

I enjoyed all the topics immensely but without a background in DirectX or 3D programming, while the chapter on visualization is beautiful, it is challenging. My readings in WPF3D helped a lot in parsing what was going on here. In addition, while there is information on using Windows Forms, I wished there was a section (or two!) on WPF. However, the F# Journal (by the same author) does have a few articles on WPF which are also very excellent.

The only thing is that, sometimes, the explanations for the examples are not very thorough, and it is a bit daunting as a beginner. One such example is the Powerset from 6.4.15 (p167) which took a while to work through. As such, I made a blog post just for this detailing how to get the solution for this.

This is not a book to, per say, 'learn F#', the previous two are for that. F# for Scientists is great if you already have the basics at hand. All in all, I HIGHLY recommend this book. It is an excellent resource/reference and in my opinion, it is one of those books you have handy -> Just in case.

Overall A+."

And don't forget about our more recent book F# for Technical Computing.

Thursday, 6 November 2008

Low-level optimization tips and tricks: part 1

The F#.NET Journal just published an article about optimization:

"The F# programming language is a fantastic tool for technical computing because it combines easy interactive high-level programming with excellent performance and multicore capability. This makes it feasible to solve a wide variety of problems without having to drop to low-level languages like C for performance. This article describes some of the low-level optimizations that underpin the ability to write performant F# programs by leveraging knowledge about the F# compiler..."

To read this article and more, subscribe to The F#.NET Journal today!

Wednesday, 5 November 2008

Luca Bolognese on F# and our products

Microsoft's Lead Program Manager for the C#, VB and F# languages/compilers and the DLR framework, Luca Bolognese, gave a great lecture about their new F# programming language at Microsoft's yearly Professional Developer Conference last thursday.

Luca used our F# for Numerics and F# for Visualization products to graph a linear interpolation of interactively scavenged financial data during his presentation and he has made his code available in a blog post:

Graphics.Plot(Functional.Interpolate.linear xys, (0., 868.), (0., 325.))



Sunday, 2 November 2008

Book review: F# for Scientists

Steven Burns has kindly posted a review of our latest book, F# for Scientists, on Amazon's sales page, saying:

"Being mathematically and scientifically oriented (and a fan of functional programming) I was destined to like this book. This book shows you how to use F# in a scientific context. The other F# books show you the mechanics, this one tells you how to drive it at full speed and take the corners. Numerics, Parsing, Visualization, it's all in here... the book is wonderful and if you end up liking it as much as I did, there's a paid subscription to a journal by the same author where you'll get bimonthly articles along the same line of this book."

All three of the reviews on Amazon have given F# for Scientists five stars!

Friday, 17 October 2008

Triangulated Irregular Networks (TINs)

The F#.NET Journal just published an article about graphics:

"Adaptive subdivision is a hot topic in computer graphics and forms the foundation of many state-of-the-art algorithms for large scale visualization used for everything from scientific visualization of huge data sets to game graphics that immerse players in expansive virtual worlds. This article describes one of the most popular approaches for the adaptive subdivision of 3D meshes and implements a capable plotting algorithm with real-time OpenGL-based visualization showcasing how this simple algorithm works and can be used to solve many different problems..."

To read this article and more, subscribe to The F#.NET Journal today!

Saturday, 11 October 2008

Book review: F# for Scientists

Matt Valerio has kindly written a review of our book F# for Scientists, saying:

"I managed to get my hands on a copy and I have to say, it is fantastic. It covers everything from the basics of the language, through functional programming concepts, to advanced list processing, to data structures, to numerical analysis, to lexing and parsing, to multithreading, asynchronous operations, optimization, and even 3D DirectX graphics! As if that list of topics wasn’t extensive enough, the book even talks about file I/O, .NET interop, databases interactions, Excel import/export, simple graph plotting, interfacing with Mathematica, web services, and integrating with LINQ. Even though it only weighs in at 323 pages, it is a massive amount of useful information. I’ve already read the first few chapters and have really enjoyed it. I can’t wait to find the time to finish it. I think that source code for the book will be available soon. This book becomes the 3rd book about F# on Amazon, right behind Foundations of F# by Robert Pickering and Expert F# by Don Syme (both also highly recommended)."

Friday, 3 October 2008

Concurrent web crawling using asynchronous workflows

The F#.NET Journal just published an article on asynchronous workflows:

"Web-enabled technology is now ubiquitous and of huge commercial value. These kinds of programs share two common characteristics: they send information over the internet and they perform tasks concurrently. This article is the first in a series to examine the use of the F# programming language in the growing area of concurrent web programming and, in particular, covers the currently-experimental support for asynchronous workflows..."

To read this article and more, subscribe to The F#.NET Journal today!

Monday, 29 September 2008

Book review: F# for Scientists

Anthony Stevens has kindly written a review of our latest book F# for Scientists saying "This is an extremely clear and well-written text.".


Monday, 22 September 2008

Named and Optional arguments

The F#.NET Journal just published an article about named and optional arguments:

"The F# programming language provides a variety of useful features that are not found in many other functional programming languages. This is why F# is widely accepted as a functional language for practical use. Named and optional arguments are two related features that can be used to great effect in simplifying interfaces. This article introduces the syntax required to define and use both named and optional arguments in F# and describes some pedagogical uses of these features, with references to existing libraries, as well as examining some of the problems often encountered by programmers using these features..."

To read this article and more, subscribe to The F#.NET Journal today!

Saturday, 20 September 2008

Book reviews: F# for Scientists

M. Sottile has kindly written a review of our book F# for Scientists:

"I found this book to be very useful. Before reading this text I had already read portions of Expert F#, and have an extensive background with the older SML language that F# and OCaml are related to. As someone who works in scientific computing, I have always wished for a reference that would explain how to use this family of languages in scientific contexts. This book provides an excellent discussion of this topic. The examples are familiar if you come from a scientific computing background, and it is useful to see examples framed in a mathematical or scientific context instead of the more abstract or simple examples found in texts aimed at more general audiences. I would highly recommend this book - it's a pleasure to read, and has proven to be a useful reference for me so far."

Chris Smith at Microsoft has also written a review of F# for Scientists:

"In short, it is an excellent book and an invaluable resource for those working in quantitative computing.

The best feature of the book is its conciseness and clarity. Given F#’s immense multi-paradigm nature it is impossible to cover everything in only 300 pages, so the book skips object-oriented programming and doesn’t do a thorough job covering F# syntax. Rather, the book covers just enough F# to solve scientific problems using the functional style. (And highlights just how well suited for science F# truly is!)

This focus on scientific computing however is also the book’s main (potential) flaw. If you consider yourself a scientist, then this book will teach you everything you need to know about F#. But if you are a .NET developer looking to integrate F# into your projects, you might find the book’s coverage of the language a little lacking. (Specifically in how to do object-oriented programming in F#.)

What impressed me most was just how clear the examples were. I haven’t had a lot of functional programming experience before working on F#, and I found the examples in the book to be very instructive on how to write ‘good’ functional code."

Wednesday, 10 September 2008

Run-time code generation using System.Reflection.Emit

The F#.NET Journal just published an article about compiler writing:
"The .NET platform represents a radical departure from the previous generation of native-code compiled languages. Whereas languages such as C++ and Fortran have distinct compilation and execution phases, the .NET platform deliberately blurs this distinction with run-time compilation of a distributable platform-independent Common Intermediate Language (CIL). This article examines the use of run-time code generation from F# using the System.Reflection.Emit namespace to implement a compiler for a simple bytecode language..."
To read this article and more, subscribe to The F#.NET Journal today!

Tuesday, 9 September 2008

F# for Visualization 0.3.1.6

Our F# for Visualization library has been updated for the latest CTP release F# 1.9.6.2 from Microsoft. The latest version of F# for Visualization includes a complete refactoring and preliminary support for export of graphs and charts to image file using the PNG format.

The documentation for the latest version of F# for Visualization is freely available on-line here.

F# for Numerics 0.0.0.8

Our F# for Numerics library has been updated for the latest CTP release F# 1.9.6.2 from Microsoft. The latest version of F# for Numerics adds seeding to the Mersenne Twister PRNG and more fundamental constants.

The documentation for the latest version of F# for Numerics is freely available on-line here.


Saturday, 30 August 2008

Language oriented programming: Term Rewriting

The F#.NET Journal just published an article describing term rewriting:

"An interesting and powerful alternative to the conventional term-level interpreter is called term rewriting. Rather than reducing expressions down to values, term rewriting simply evaluates expressions by performing substitutions and the result of each substitution is another expression. This approach is particularly well suited to computer algebra systems such as Mathematica but is also an underappreciated alternative to dynamically-typed programming languages that can integrate useful features like pattern matching and make techniques like partial specialization far easier. This article describes how a simple term rewriter can be constructed in the F# programming language..."

To read this article and more, subscribe to The F#.NET Journal today!

Friday, 29 August 2008

Trending F# jobs in the UK

As a pioneering functional programming language on the world's favorite platform, F# is set to explode onto the job scene over the next few years.

The ITJobsWatch website is everyone's first stop for analysing trends in the UK job market and, interestingly, they recently added statistics for the F# language that indicate the current average salary for an F# programmer is already £45k or US$82k (or AU$92k!).

Needless to say, the demand and salary of F# programmers in the UK will be a trend to watch over the next couple of years!

Sunday, 3 August 2008

F# for Scientists

We are starting to get reports from customers who have received their copies of our F# for Scientists book, which is now rolling off the presses at John Wiley & Sons.

The original source code from the book will be made freely available on our site in the near future but we are also working on a completely new product comprising revised and updated examples derived from those in the book that make the best possible use of the very latest software releases including updates to the F# distribution itself as well as video screencasts of the author covering topics from the book.

Watch this space!

Update: President and founder of DataSynapse, Jamie Bernardin, just published a review of F# for Scientists on Amazon saying " All around outstanding".


Implementing XML-RPC clients and servers

The F#.NET Journal just published an article about XML-RPC:

"XML-RPC is a protocol for remote procedure calls that is built upon the XML format. Method calls are packaged up by the client as an XML request sent via HTTP to the server whereupon action is taken and a response is packaged up and returned in the same way. This article demonstrates how elegantly F# programs can handle XML data using combinators and describes how a complete client-server pair using XML-RPC can be designed and built from scratch using only a small amount of library code and the .NET framework..."

To read this article and more, subscribe to The F#.NET Journal today!

Tuesday, 29 July 2008

F# in a Nutshell

Following in the footsteps of Foundations of F#, Expert F# and F# for Scientists, Amanda Laucher and Ted Neward have announced their intention to write a new book on F#, the first to be published by O'Reilly. The book is called F# in a Nutshell and is a member of O'Reilly's In a Nutshell series.

F# in a Nutshell is scheduled to be published in April 2009.


Saturday, 19 July 2008

Microsoft .NET Framework 3.5 Service Pack 1 Beta

This beta release service pack causes widespread corruption of both the core of the .NET Framework and Visual Studio. Moreover, the built-in uninstaller is completely broken and repairing the corruption is extremely laborious. If you have not already tried this release from Microsoft, we strongly recommend that you avoid it.

If you have ever installed this service pack (even if you ran its uninstaller) and are seeing random crashing and/or exceptions being raised by our software or other WPF-based programs and are running x86 (rather than x64, for which the only solution appears to be reinstalling Windows) please try the following steps to repair your computer:

  1. Download Aaron Stebner's unofficial uninstaller and the .NET installers.
  2. Use the conventional uninstallers to try to remove every version of .NET: 3.5 then 3.0 SP1, then 2.0 SP2 and then 1.1.
  3. Reboot.
  4. Before running anything, run the unofficial uninstaller in an attempt to remove the corrupted files from your system.
  5. Reboot.
  6. Install .NET again.

If this does not fix your machine then we recommend seriously considering a fresh install of the entire OS and all other software: this problem took us about a week of solid work before we had our corrupted machine up and running reliably again.

Mathematica interoperability

The F#.NET Journal just published an article about Mathematica automation:

"The Mathematica integrated technical computing environment from Wolfram Research is an incredibly powerful cross platform development environment, language and enormous standard library specifically designed for technical computing. Mathematica's .NET-Link technology is designed to allow Mathematica programs to interoperate with .NET languages such as C#. This article examines the hugely productive marriage of the F# programming language with Mathematica and demonstrates how Mathematica can be controlled entirely from F# programs, allowing Mathematica's awesome functionality to be tapped from a much higher performance and more scalable language..."

To read this article and more, subscribe to The F#.NET Journal today!

Saturday, 12 July 2008

New F# 1.9.4.19 release

Microsoft just released a minor update to the previous F# distribution. The new F# 1.9.4.19 fixes compatibility issues with the latest .NET 3.5 Service Pack 1 beta.

Monday, 7 July 2008

Interoperating with native code from F#

The F#.NET Journal just published an article about the F# foreign function interface:

"Although the F# programming language offers many improvements over older languages such as unmanaged C, C++ and Fortran the need to interoperate with native code can still arise. The two most important uses for native code interoperability are performance and legacy. This article describes how native code can be invoked from F# programs, including essential design advice for building robust interfaces in this otherwise error-prone task..."

To read this article and more, subscribe to The F#.NET Journal today!

Sunday, 22 June 2008

Review: F# for Visualization

Granville Barnett has kindly written a review of our F# for Visualization library. The review includes several interesting examples generated using our new interactive 3D visualization features.

Friday, 20 June 2008

F# for Visualization 0.3.1.3


The latest version of our F# for Visualization library includes full support for 3D visualization including axes with scales and interactive mouse control as well as high-fidelity surface plots for functions of two variables.

Preliminary performance measurements indicate that the 3D function plotter is already 20× faster than Mathematica 6 thanks to the performance of the F# programming language from Microsoft.

Tuesday, 17 June 2008

Real-time Finite Element Materials simulation

The F#.NET Journal just published an article that develops an interactive toy program:

"Finite Element Materials simulations (FEMs) model a continuous volume of material by breaking it down into a discrete representation with many finite parts. This article describes a simple but fun program that simulates the dynamics of a 2D system of particles and springs in real-time. The program includes an interactive GUI visualization based upon Windows Presentation Foundation..."

To read this article and more, subscribe to The F#.NET Journal today!

Friday, 6 June 2008

Scalable distributed parallelism with MPI.NET

The F#.NET Journal just published an article about MPI:

"High-performance programs are often run on clusters of machines and the Message Passing Interface (MPI) is the defacto standard for inter-process communication for this kind of distributed parallelism. This article demonstrates just how easily existing .NET libraries can be used to parallelize F# programs across clusters of machines using MPI..."

To read this article and more, subscribe to The F#.NET Journal today!

Saturday, 24 May 2008

F# for Visualization and F# for Numerics documentation now on-line

The autogenerated HTML documentation for the current beta releases of our F# for Visualization and F# for Numerics libraries are now freely available on-line from the ends of the respective sales pages.


Thursday, 22 May 2008

F# for Numerics 0.0.0.6

Following Microsoft's release of another new F# version, we have updated our F# for Numerics product that brings high-performance numerical methods with an elegant functional interface to the F# programming language. F# for Numerics 0.0.0.6 provides:

  • Support for the latest F# compiler version 1.9.4.17.
  • Linear algebra routines including full matrix inversion for single-precision real matrices, as well as double-precision, complex and arbitrary-precision rational.
  • Faster high-quality random number generation using the state-of-the-art Mersenne Twister algorithm.

This product currently requires .NET 3.0 or better and F# 1.9.4.17.

F# 1.9.4.17 released

Microsoft have made a bug fix release 1.9.4.17 that addresses some important issues in the recently released 1.9.4.15 version of the F# distribution.

F# for Visualization 0.3.0.2

Following Microsoft's release of another new F# version, we have updated our F# for Visualization product that adds interactive graphing and charting functionality to F#. F# for Visualization 0.3.0.2 provides:

  • Support for the latest F# compiler version 1.9.4.17.
  • An example illustrating the elegant functional interface provided for general purpose 2D vector graphics, upon which the graphing, charting and mathematical typesetting algorithms are based.
  • An example of the new 3D visualization capabilities in action.

This product currently requires .NET 3.0 or better and F# 1.9.4.17.

Sunday, 18 May 2008

Porting and optimizing the SciMark2 benchmark

The F#.NET Journal just published an article about the SciMark2 benchmark from NIST:

"The SciMark2 benchmark is a suite of numerical algorithms that were originally collated into a benchmark for scientific computing on the Java platform. Porting this benchmark to F# provides an excellent tutorial on the implementation of efficient numerical algorithms and the existing C# implementation of this benchmark can be used for comparison. The results illustrate the strengths and weaknesses of the current F# implementation in terms of performance..."

To read this article and more, subscribe to The F#.NET Journal today!

Thursday, 15 May 2008

F# for Numerics 0.0.0.4

Our F# for Numerics library that provides high-performance numerical methods and related functionality for Microsoft's interactive F# programming language has just been updated with support for the latest version of F#.

F# for Numerics 0.0.0.4 also provides a new efficient and numerically-robust linear solver that is not only remarkably simple to use but can also be applied to real, complex and even arbitrary-precision rational matrices!

This product requires F# 1.9.4.15.

F# for Visualization 0.3.0.1

Our F# for Visualization product that adds interactive graphing and charting functionality to F# has just been updated. F# for Visualization 0.3.0.1 provides:

  • Support for the latest F# compiler version 1.9.4.15.
  • An elegant and efficient functional interface to the vector graphics capabilities provided by Microsoft's Windows Presentation Foundation.
  • Typeset mathematics.
  • 2D function plots.
  • Preliminary support for 3D visualization.

This product currently requires .NET 3.0 or better and F# 1.9.4.15.

Friday, 9 May 2008

Surviving in the multicore era with Microsoft's Parallel FX

The F#.NET Journal just published an article covering Microsoft's awesome new library for parallel programming on .NET:

"As the world transitions to multicore desktop computers over the next few years it is essential that software evolves to take advantage of this new dimension in processing power by exposing parallelism. Any software products that fail to evolve will suffer catastrophic losses in sales. The F# programming language uniquely combines natural parallelism at the language level with state-of-the-art capability at the implementation level thanks to its .NET foundation. Microsoft's new Task Parallel Library (TPL) is the keystone in building parallel F# programs and this article explains how this is done using Microsoft's latest Community Technology Preview (CTP) of the TPL..."

To read this article and more, subscribe to The F#.NET Journal today!

Saturday, 3 May 2008

Special Offer: The F# PowerPack

For a limited time only, get 25% off when you buy F# for Numerics, F# for Visualization and a 1 year subscription to The F#.NET Journal at the same time!

F# 1.9.4.15 released

A new version of the F# distribution was released yesterday. Upgrades for our F# for Numerics and F# for Visualization products will be made available over the next couple of days.

Monday, 28 April 2008

Review: The F#.NET Journal

Long-time F# blogger Granville Barnett has kindly published a short review of our F#.NET Journal: A great resource for F#.

Friday, 18 April 2008

Numerical Libraries: linear algebra and spectral methods

The F#.NET Journal just published an article examining the usability and performance of various numerical libraries from F#:

"This article revisits the subject of numerical libraries for .NET, this time in the context of linear algebra and spectral methods. Specifically, the use and performance of various free and commercial numerical libraries are examined for the computation of eigenvalues and Fourier transforms. This includes a complete 1D FFT interface for F# to the excellent FFTW library..."

To read this article and more, subscribe to The F#.NET Journal today!

Friday, 4 April 2008

Reducing development costs with Static Typing

The F#.NET Journal just published an article describing how F#'s static type system can be leveraged to reduce software development costs:

"The F# language arms programmers with the most sophisticated static type system of any mainstream programming language. This static type system can be used to remove large classes of common bugs that are otherwise tedious or impossible to track down, drastically reducing software development costs. However, learning how and when to leverage such a type system is an art that requires significant effort to learn. This article describes idiomatic F# style and a variety of techniques that can be used to leverage the static type system in order to catch errors earlier and more easily..."

To read this article and more, subscribe to The F#.NET Journal today!

Tuesday, 25 March 2008

F# for Numerics update

The F# for Numerics library for Microsoft's F# programming language has just been updated. New features include:

  • FFTs now 2× faster.
  • 1D FFTs over both arrays and vectors.
  • 2D FFTs over F# matrices with parallelism to exploit multicores.
  • Linear, cubic spline and Lagrange polynomial interpolation.
  • More special functions including sinc, the error function and the probit function.
  • Faster Mersenne Twister random number generation, particularly over the Normal distribution.
  • Physical constants.
  • More worked examples.
  • The binomial function for combinatorics.
This library emphasizes easy of use from the F# programming language but the implemented algorithms rival the performance of any managed-code competitor. The next major release of F# for Numerics is due to include a complete BLAS and LAPACK implementation written entirely in F#.

Friday, 21 March 2008

Numerical Libraries: special functions, interpolation and random numbers

The F#.NET Journal just published an article describing how existing .NET numerical libraries can be used from F#:

"The F# programming language provides an excellent foundation for technical computing on the Windows platform thanks to its high-performance interactive sessions and integrated support for mathematical types. This article is our first look at numerical libraries, both free and commercial, and describes the implementation quality and easy of use of these libraries in the context of special functions, interpolation and random numbers...."

To read this article and more, subscribe to The F#.NET Journal today!

Tuesday, 11 March 2008

F# for Visualization: 2D function plots

The latest beta release of F# for Visualization is the beginning of a rewrite using Windows Presentation Foundation rather than DirectX.

This release provides interactive 2D function plotting with typeset mathematics using an elegant functional API. The design of the library emphasizes ease of use, allowing simple function plots to be spawned interactively using only one line of code.

Subscribe to our beta release scheme today and get 50% off the cost of the final product.


Saturday, 8 March 2008

F#.NET Tutorial now on YouTube

Tens of thousands of people have watched our tutorial F# video from the free section of our website but bandwidth requirements make the link unreliable. Consequently, we have uploaded the video to YouTube which is much more reliable but lower quality.

To watch more tutorial videos on F# subscribe to our on-line F#.NET Journal today!

Sunday, 2 March 2008

Embedding XNA in Windows Forms

The F#.NET Journal just published an article describing how XNA can be used to add high-performance visualization to Windows Forms applications:

"Microsoft's XNA library is conventionally used for whole-screen games programming but related GUI applications such as level editors can often benefit from the ability to reuse the same XNA-based rendering code in a Windows Forms application. This article describes how an XNA-based Windows Forms control can be written in F#, allowing XNA to be used in an ordinary Windows application..."

To read this article and more, subscribe to The F#.NET Journal today!

Thursday, 28 February 2008

Special offers on The F#.NET Journal

Following the success of The F#.NET Journal, we have added a variety of extra subscription offers including 1 year subscriptions, group subscriptions and site licences as well as two different special offers when you subscribe to our Journals.

Friday, 22 February 2008

Graph plotting with Windows Presentation Foundation

The F#.NET Journal just published an article introducing the use of Windows Presentation Foundation from F# interactive sessions:

"The advent of the .NET Framework 3.0 brings an exciting new technology to the Windows platform for the first time: hardware-accelerated vector graphics as part of Windows Presentation Foundation. This part of Microsoft's standard library allows programmers to define resolution-independent vector graphics in the form of arbitrary paths and shapes and visualize them in an interactive GUI. This article describes how these features can be used in F# programs and builds a simple graph plotter as an example..."

To read this article and more, subscribe to The F#.NET Journal today!

Wednesday, 20 February 2008

F# for Numerics library out now!

Flying Frog Consultancy are launching another product line based around Microsoft's new F# programming language. Our new F# for Numerics library is a suite of numerical methods that leverage functional programming with F# to make high-performance technical computing easier than ever before.

This library implements numerical methods from a variety of different disciplines in a uniform way with an emphasis on easy of use:

  • Local and global function minimization and maximization.
  • Mean, median, mode, variance, standard deviation, skew, kurtosis, Shannon entropy and other statistical quantities.
  • Interpolation, curve fitting and regression.
  • Matrix factorizations including eigenvalue computation.
  • Numerical integration and differentiation.
  • Spectral methods including the Fast Fourier Transform.

Many of these numerical methods are already implemented in the beta release. Subscribe to our beta release scheme now and get 50% off!


Saturday, 9 February 2008

F# for Scientists now being published!

We have completed our latest book F# for Scientists and sent the final version to the publisher, John Wiley & Sons, this week. The book will reach bookstores all over the world in the coming months.

This is our second book on non-mainstream programming languages in recent years and, for various reasons, many such languages are currently booming.

Our previous book OCaml for Scientists covered the OCaml programming language, which is a close relative of F#, and is targetted primarily at technical users (scientists and engineers) using the Linux and Mac OS X platforms.

In contrast, F# for Scientists targets primarily Windows users and covers many new topics from invaluable language features like extensible operator overloading with type inference and active patterns to important practical concerns like interoperability with Microsoft Excel and the use of existing .NET libraries for number crunching and real-time interactive visualization.

We would like to take this opportunity to thank the people involved in this work, without whom this book would never have seen the light of day. Don Syme and his F# group at Microsoft Research Cambridge (UK) for creating what is a truly awesome development tool. We have no doubt that F# will have an enormous effect the world over, not only in technical computing but for general software development. Also, Robin Milner, Xavier Leroy and their groups for their pioneering work in creating this whole family of languages.

Over the coming months we shall endeavour to put as much of the code from the book as possible on the book's web page, including compiled versions of all of the demos.

Finally, we hope you have as much fun reading our book as we had writing it. Thank you!


Sunday, 3 February 2008

Factoring numerical methods using combinators

The F#.NET Journal just published an article describing how concepts from functional programming allow numerical methods to be implemented clearly and efficiently, culminating in a complete threaded GUI application for quenching 2D systems of atoms interacting via a pair potential with real-time visualization:

"The benefits of functional programming in certain areas like parsers and compilers are well known but functional programming can also be extremely beneficial in many other areas including numerical computation and technical computing. This article shows how common functional constructs can be used to implement some numerical methods and even entire working programs quickly and easily. The clarity of the resulting implementations is remarkable thanks, in particular, to the use of combinators..."

To read this article and more, subscribe to The F#.NET Journal today!

Thursday, 17 January 2008

Implementing a simple Ray Tracer

The F#.NET Journal just published an article that walks through the construction of a simple ray tracer with a GUI all developed incrementally in an F# interactive session:

"Ray tracing is a simple but powerful approach to photorealistic rendering and implementing a ray tracer is an excellent way to learn a programming language and, in particular, to learn about graphics and optimization in the context of numerical algorithms. This article walks through the design and implementation of a basic ray tracer that ray traces a scene in a Windows Forms application, providing the user with rendering options via a menu and real-time incremental update..."

To read this article and more, subscribe to The F#.NET Journal today!

Hanselminutes on F# with Dustin Campbell

Scott Hanselman's podcast Hanselminutes recently broadcast an interview with Dustin Campbell about the F# programming language from Microsoft.

This is the third major podcast about F#, following on from Robert Pickering on Hanselminutes and Jon Harrop on .NET Rocks!

Monday, 7 January 2008

Language-oriented programming: The Term-level Interpreter

The F#.NET Journal just published an article describing the design an implementation of an interpreter for a new programming language:

"Modern software is using a wider variety of languages than ever before. The ability to parse and interpret these languages is of growing importance. Fortunately, F# inherits incredibly powerful constructs for parsing and interpreting other languages from its predecessors. This article explains how the power of F# can be harnessed to write a complete term-level interpreter for a programming language in only a tiny amount of F# code..."

To read this article and more, subscribe to The F#.NET Journal today!