Archives

Archives / 2008 / September
  • Object Oriented F# - Creating Classes

    In the past couple of posts, I covered extension everything in F#.  This allows me to extend .NET types with such things as extension static and instance methods, properties, properties with indexers, events and so on.  But, let's go back to the beginning and cover object oriented programming with F# from the ground up.  I like to stress that F# is not only a first class functional language, albeit a more impure one than say Haskell, but it also treats imperative and object oriented code as first class citizens as well.  To be able to mix and match for the appropriate programming style makes this a very powerful tool, to be able to use functional aspects with first class citizenship, but as well with imperative and object oriented, well, then the sky is the limit.  With that, let's go over some of the things that make F# a player in this space.

  • Reminder - DC ALT.NET - 9/24/2008 - Building ASP.NET MVC Applications

    Just a reminder that the September meeting for DC ALT.NET will be on September 24th, 2008 from 7PM-9PM.  Check out our site and our mailing list for more information as it becomes available.  This month, Troy Goode will present on building applications with ASP.NET MVC.  This will be a basic introduction, but also how to build practical applications, such as a blog engine using MVC.  Download the latest bits, ASP.NET MVC Preview 5 and follow along as I will be.

    I'd like to thank Cynergy Systems, Inc for sponsoring this month's event.  As a side note, they are actively looking for experienced .NET developers with interest in WPF and Silverlight.  So, if you're looking for a great company that is a leader in the Rich Internet Applications area and want to work in downtown Washington D.C., definitely check them out. 

    The information is as follows:

    DateTime:
    9/24/2008 - 7PM-9PM

    Location:
    Cynergy Systems Inc.
    1600 K St NW
    Suite 300
    Washington, DC 20006
    Show Map



    Be there and hope to see a passionate crowd!

    kick it on DotNetKicks.com

  • Functional C# - Pattern Matching

    In the past, I've covered quite a bit of functional programming in C# 3.0 and how you can implement some of the basic constructs using the language.  In preparation for the Richmond Code Camp coming up on October 4th, for which I'm planning to present "Functional C# -or- How I lost the foreach and learned to love LINQ", I'm revisiting some of the topics I've talked about in the past.  One of those topics is pattern matching.

  • Side Effects and Functional Programming

    One of my first posts at CodeBetter was in regards to side effects and how, when unmanaged, can be truly evil.  Today, I want to revisit that topic briefly in regards to functional programming and managing side effects.  When I was out in Redmond a couple of months ago, I had the opportunity to sit down with Erik Meijer to discuss functional programming among other topics.  In there, we discussed a number of issues around managing side effects and state in your code, and how both C# and F# don't intrinsically support such a concept.  Languages like Haskell, of course do with IO monads and other such monadic structures.  Whether languages such as F# and Erlang are not pure functional programming languages is another matter, due to the fact that you don't have to declare when you are side effecting (reading a database, writing to console, spawning a process, etc). 

  • Object Oriented F# - Extension Everything

    A post by Jeremy Miller caught my eye this morning in regards to extension methods in Javascript.  While I think that's pretty interesting, I don't think it's a real fair comparison.  Instead, I want to revisit C# and even F# with regards to extension methods, because there are a few things I wanted to point out.  This is the start of a series covering object oriented programming techniques and how they are used in F#.  Note that F# is not only a functional language, but it is a general purpose programming language that supports functional, imperative and object oriented techniques.  I hope this series is useful for pointing out that F# fits the need very nicely for object oriented constructs, which is seldom covered.

  • DC ALT.NET - 9/24/2008 - Building ASP.NET MVC Applications with Troy Goode

    The September meeting for DC ALT.NET will be on September 24th, 2008 from 7PM-9PM.  Check out our site and our mailing list for more information as it becomes available.  This month, Troy Goode will present on building applications with ASP.NET MVC.  This will be a basic introduction, but also how to build practical applications, such as a blog engine using MVC.  Download the latest bits, ASP.NET MVC Preview 5 and follow along as I will be.

    I'd like to thank Cynergy Systems, Inc for sponsoring this month's event.  As a side note, they are actively looking for experienced .NET developers with interest in WPF and Silverlight.  So, if you're looking for a great company that is a leader in the Rich Internet Applications area and want to work in downtown Washington D.C., definitely check them out. 

    The information is as follows:

    DateTime:
    9/24/2008 - 7PM-9PM

    Location:
    Cynergy Systems Inc.
    1600 K St NW
    Suite 300
    Washington, DC 20006
    Show Map



    Be there and hope to see a passionate crowd!

    kick it on DotNetKicks.com

  • FsTest Updated with F# CTP

    Back in June, I announced the creation of FsTest, a testing Domain Specific Language for F#.  Since that time, the F# team has released the September 2008 CTP, which finally gives F# full citizenship within Visual Studio with real project files.  I felt it was time to update FsTest, and more in particular, FsxUnit, which uses xUnit.net as the back end for doing assertions.  Go ahead and pick up the latest bits here from the CodePlex site.

  • Functional Programming Notables #1

    Lately, there has been a lot of momentum around functional programming.  While I was away on vacation for the past couple of weeks, I came across quite a few items that caught my eye.  This isn't meant to be a link blog by any means, but to show that there is a bit of new information coming out around functional programming and what it means to you.