August 2005 Blog Posts

Aspf Demo

I have update the Aspf Demo so it now utilises F# 1.1 ablity to define classes. It now also inculdes a web serverice. Enjoy! http://www.strangelights.com/fsharp/AspfDemo/

Arg Parsing – The Chris Sells Challenge

A couple of days ago Chris Sells made this post about the way best to parse command line augments. Given an xml document describing the structure of a command line augment, he wants to know would it be best to use code gen or an interpreter to parse command line arguments. Here is the xml structure he was talking about.   <args description="Two wrongs don't make a right, but three lefts do">  <arg name="lefts" description="Number of left turns" type="int" default=4" />  <arg name="attitude" description="Driver attitude" required="true" type="string" /></args>   F# (and the ML languages in general) offers a...

Functional Programming in C# 2.0 - Bidirectional Folding

Last time we took a look at folding. It may not have escaped the readers notice that some operations are dependent on the order the parameters are processed. For instance in the string concatenation example the order the parameters are processed affects the order they appear in the output string. But in this example to reverse the order of result does not actually require access to the list in both directions, it is only necessary to reverse the order that the parameters are concatenated in:   // intList = {1, 2, 3, 4, 5, 6} string...

Functional Programming in C# 2.0 - Folding

Late there has been quite a lot of talk about functional programming in C#. Efforts by Don Box, have been note and used on this blog several times and now that and now Sriram Krishnan has produced this nice piece on currying in C# 2.0.   One area that seams to have been over looked so far is folding. A folding function is similar to a mapping function and mapping functions are supported by the framework library in version 2.0, expect it calls it ConvertAll. For example, the framework defines the following method on the...