Archives
-
F# Releases September 2008 CTP!
Don Syme just announced today the F# Community Technical Preview (CTP) Release September 2008 which is now available for download as well the launch of the MSDN F# Developer Center. I've been playing with these builds lately and they are great improvements in usability as well as better integration into Visual Studio and MSBuild. Be sure to check out Don's post on the matter on how the language has evolved and the changes that have been made. Some of the big items I've that are part of the CTP include:
-
Reminder: DC ALT.NET - 8/28/2008 - Ruby with Jeff Schoolcraft
The August meeting for DC ALT.NET will be on August 28th, 2008 from 7-9PM. Check our site and our mailing list for continuing updates and future meetings. This month, Jeff Schoolcraft, ASP.NET MVP, will host a conversation on Ruby. This will include some Ruby demos, a little bit of Ruby on Rails, as well as approaching it from the ASP.NET mindset. This talk will go very nicely with our talk on ASP.NET MVC next month.
-
Async Computation Expressions - Resource and Exception Management
For the next part of my coverage of Asynchronous Computation Expressions, I'm going to talk about the things you get for free when you use them. I was reminded of this during a recent chat with Greg Young about how hard it was during asynchronous operations to notify the controlling thread of an exception. These asynchronous operations are meant to handle such things.
-
Aspects of Functional Programming in C# Presentation and Code Redux
I've continued to add to my Functional C# project as time goes along. This is intended to be a library of functional programming techniques in C# 3.0 and some demonstrations of moving from imperative style programming to a more functional programming style. This is an ongoing project and more will be added in time, and I may end up just putting them up not as samples, but as a library. But in the mean time, there are a lot of interesting topics that are being covered.
Some of the topics covered in these code projects are: -
Recursing on Recursion - Continuation Passing
In this continuing series of my back to basics, I've been talking about recursion, and various strategies around using it effectively. This includes covering the basic types of recursion, whether it be linear, binary, and tail. Then I took it a step further with topics on list recursion and memoization techniques. This is an ongoing part of my back to basics series in which I hope is a refresher for many who don't use these things on a daily basis.
-
Adding Async Operations to Asynchronous Computation Expressions in F#
Asynchronous Computation Expressions are an extremely powerful feature in F#. It's important to not only know how to use them, but also to extend the behavior so that other classes can bind and perform asynchronous behavior. What I want to show in this post is how easy it is to add this behavior to any custom web service that you may create.
-
DC ALT.NET - 8/28/2008 - Ruby with Jeff Schoolcraft
The August meeting for DC ALT.NET will be on August 28th, 2008 from 7-9PM. Check our site and our mailing list for continuing updates and future meetings. This month, Jeff Schoolcraft, ASP.NET MVP, will host a conversation on Ruby. This will include some Ruby demos, a little bit of Ruby on Rails, as well as approaching it from the ASP.NET mindset. This talk will go very nicely with our talk on ASP.NET MVC next month.
-
Task Parallel Library and Async Computation Expressions
Very recently, I've given a few talks on Asynchronous and Concurrent Programming in F#. In this talk, I gave a brief overview of the options you have when dealing with concurrency and asynchronous behavior. During these talks, I was asked a few times about where asynchronous computation expressions (workflows) fit and how it differs from doing things with the Task Parallel Library from the Parallel Extensions for .NET. There are some differences worth exploring and I'll post some code snippets to compare and contrast the two.
-
Recursing into Recursion - Memoization
When doing heavy computations through recursion, memoization becomes a pretty important topic. The idea behind memoization is to speed up your programs by avoiding repetitive calculations for previously processed function inputs. Let's go ahead and try a simple example using the ever so trite Fibonacci sequence as a quick example.