F# - First Impressions

   It seems like it is time to inform my multimillion reader base about my impressions about the F# programming language.  As I mentioned in my previous post I picked F# over IronPython because Python uses indentation to define scope. The first thing that got me annoyed about F# is that there is an option to turn on indentation based syntax like in Python and everyone uses it. At least it is an option and unlike Python when this option is turned on the F# compiler forces the use of spaces instead of tabs. On the other hand

let wordCount text =
   let words = String.split [' '] text
   let wordSet = Set.of_list words
   let nWords = words.Length
   let nDups = words.Length - wordSet.Count
   (nWords,nDups)

really looks better than

let wordCount text =
   let words = String.split [' '] text in
   let wordSet = Set.of_list words in
   let nWords = words.Length in
   let nDups = words.Length - wordSet.Count in
   (nWords,nDups);;

   Right now when I am trying the examples from the "Expert F#" book I am always rewriting them with the heavy syntax. That way I am learning both types of syntax and what is more writing these keywords helps understand how expressions are composed. However when you get used to it these tokens are just messing around. Maybe with time I will get used to indentation based syntax and will give IronPython a try.

  Otherwise F# looks cool but strange. It is not even lispish. The first thing one needs to do is let go of type declarations which is not so simple because F# is as strongly typed as C#. It takes time to get used to type inference even if one has experience with C#'s way of doing it. Another thing that seems strange at first is that functions can return more than one value by automatically forming a tuple.  Tuples are then decomposed back to variables using pattern matching i.e. placing the first element of the tuple in the first variable, the second element in the second variable and so on. However this can get more complicated because an element in a tuple can itself be a tuple. Worth noting is that one can switch to C# style programming at any time. I hope I will not get tempted to program in F# like I do in C# when I try to do something myself because there will be no point in using F# if I write it like C#. What is more C# is better at being C# than F# is.

   Overall I think F# is fun but I have to wait to see what happens when I get into the deep waters.
Tags:   english programming 
Posted by:   Stilgar
14:55 05.08.2008

Comments:

First Previous 1 Next Last 

Posted by   JOKe (Unregistered)   on   15:08 06.08.2008

WTF ? :D

Posted by   Stilgar   on   16:28 06.08.2008

WTF#?

Posted by   JOKe (Unregistered)   on   13:46 08.08.2008

yeah thats the language (respect) :D

First Previous 1 Next Last 


Post as:



Post a comment: