Posts for #Functional Programming

Yesterday I presented my talk Being Functional to the London .NET User Group. First of all: thanks to Dylan and Ian and whoever else was involved for organizing this event and inviting me, and to Skills Matter for making their fantastic CodeNode venue available to the group! I had a great time and I believe everybody else did, too 😃

Feel free to get back to me if you have any questions or comments! Here's the download of samples and slides I used during the talk.

The online publication Informatik Aktuell has just published a German language article I wrote for them on topics of functional programming in C#. Read it here: Funktionales C# für Fortgeschrittene

I finally got round to something today that has been waiting for a very long time: I published my Functional C# library FCSlib on github and NuGet. I first started working on parts of this back in 2008 and put the library together when I wrote my book Functional Programming in C#.

There are still things I’d like to do for the github project – most importantly, I know I have a set of tests somewhere, but because I was using the library for various purposes over years and I didn’t have source control organized well enough, that stuff is spread out a bit. I need to find everything and probably create a bunch of additional tests for some proper coverage, and hopefully I’ll be able to do that in the future. I also hope to add some documentation, but meanwhile read the book or dig around yourself 😃

On April 13th, during Microsoft’s inaugural UK TechDays event, I’ll be speaking for the Edge UG at the main Fulham Broadway venue. This is part of what Microsoft call the Fringe events, community hosted events that complement the main Developer and IT Pro days. I will be speaking about functional programming on the .NET platform, using both the C# and the F# languages. Here’s the abstract for this talk:

It seems to turn into a shoot-out: listing directories is suddenly en-vogue! 😃 So, Craig Andera posted this code in written in Clojure, which lists some directories lazily, and Chris Sells thought he could do that in C#, too. I thought these code examples all look rather verbose – in the case of Clojure because in that way rather typical for Java, the APIs are pretty verbose to use, and in the case of C# because of all the syntactic, well, ahem, necessities, as well as the fact that there’s no language feature for integrating nested sequences seamlessly. Keeping it nice and simple, in F# that example can look like this:

open System.IO

let rec GetDirectoryDescendants(path) =
    seq {
        yield! Directory.GetFiles(path)
        for subdir in Directory.GetDirectories(path) do
            yield! GetDirectoryDescendants(subdir)
        }

I was in Amsterdam yesterday and did a talk for the dotNed user group on functional programming in C#. It’s always a great topic to talk about, and as usual everybody was very interested. We spent a bit more time on the Parallel Extensions than I was anticipating – the main reason I even start explaining Parallel Extensions is that I want to point out where their functionality ends – but that was fine. I think I was able to answer a bunch of questions on that, which is always a good thing.

A few of the guys were very happy about DevExpress and didn’t hesitate to say so either 😃 (And no, this doesn’t mean that everybody else was horribly unhappy about DevExpress, the “others” just didn’t say anything on the topic. 😃) Especially the Windows Forms controls were mentioned as being fantastically stable and feature rich, with brilliant documentation. Always nice to hear that!

The first stop of my Europe roundtrip is completed and I’m now in Slovenia for NT konferenca 2009. Last Friday I did a guest lecture at campus02 in Graz (which is in Austria, btw – had a few people asking me that), on functional programming in C#. I think there were around 40 people there, everything went smoothly and everybody was very interested – great! Here are the complete slides and samples which were used in the lecture: GrazGuestLectureMay2009.zip

Thanks to everyone who was there – I enjoyed myself and I hope you did, too!

Yesterday I recorded a video at TechEd about Functional Programming in C#, together with my colleague Gary Short. It’s up on the site now: Functional Programming in C#.

Unfortunately, the quality of the code demo in the video isn’t that great, my apologies for that. I’m not even going to go into what they made me do to the Apple logo on my laptop 😃 The info at the end of the video is supposed to read something like this: Oliver Sturm / DevExpress olivers@devexpress.comoliver@sturmnet.org Blog: – well, you’re looking at it right now – Podcast: http://www.sodthis.com

I’ll be traveling down to London tomorrow for DevWeek 2009, where I’m going to do a workshop on F# on Monday and a few sessions on C# and F# on Thursday. Are you going to DevWeek? Are you going to be in London over the next few days? If you want to meet up, just let me know and I’m sure we can work something out! I’ll be twittering while I’m there, so following me on Twitter will be a good way of finding out where I am, if you fancy joining me for a pint!

Here’s the abstract I submitted for a birds-of-a-feather session at TechEd US:

Benefits of Functional Programming ideas in the context of parallelization efforts